Java與模式 不變模式 Immutable pattern發(fā)布者:本站 時間:2020-05-06 15:05:22
不變模式可增強(qiáng)對象的強(qiáng)壯性(robustness)。不變模式允許多個對象共享某一對象,降低對該對象進(jìn)行并發(fā)訪問的同步化開銷。如果需要修改一個不變對象的狀態(tài),就需要建立一個新的同類型對象,并在創(chuàng)建時將這個新的狀態(tài)存儲在新對象里。
不變模式之設(shè)計一個類。一個類的內(nèi)部狀態(tài)創(chuàng)建后,在整個生命期內(nèi)都不會發(fā)生變化時,這個類被稱為不變類。這種使用不變類的做法叫作不便模式。
弱不變模式:一個類的實(shí)例狀態(tài)不可改變,但是子類的實(shí)例具有可能會變化的狀態(tài)。
對象沒有任何方法可以修改對象的狀態(tài)
所有的屬性都應(yīng)該是私有的
對象所引用的其他對象如果是可變對象的話,必須設(shè)法限制外界對這些對象的訪問,以防止外界修改這些對象。如果可能,應(yīng)該盡量在不變對象內(nèi)部初始化這些被引用到的對象,而不要在客戶端初始化。如果必須在 客戶端初始化,就應(yīng)該考慮在不變對象初始化的時候,適用這個可變對象的復(fù)制。
強(qiáng)不變模式:一個類的實(shí)例不可改變,子類的實(shí)例也不可改變
所有的弱不變模式的條件(必選)
類所有的方法都應(yīng)當(dāng)是final,這樣這個類的子類不能夠換掉此類的方法(2,3選項(xiàng)必選一個)
這個類本身就是final的,不存在子類(2,3選項(xiàng)必選一個)
優(yōu)點(diǎn):
易維護(hù),避免程序錯誤
線程安全
缺點(diǎn):
如果需要修改狀態(tài),必須修建對象,可能造成資源浪費(fèi)。
選擇我們,優(yōu)質(zhì)服務(wù),不容錯過
1. 優(yōu)秀的網(wǎng)絡(luò)資源,強(qiáng)大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設(shè)經(jīng)驗(yàn),優(yōu)秀的技術(shù)和設(shè)計水平,更放心
3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時聯(lián)系電話:021-58370032