在线亚洲男人的天堂a∨_中国毛片区免费区_伊人久久中文大香线蕉综合_久了精品国产99国产精

將想法與焦點(diǎn)和您一起共享

Java與模式 不變模式 Immutable pattern發(fā)布者:本站     時(shí)間:2020-05-06 15:05:22

不變模式可增強(qiáng)對象的強(qiáng)壯性(robustness)。不變模式允許多個(gè)對象共享某一對象,降低對該對象進(jìn)行并發(fā)訪問的同步化開銷。如果需要修改一個(gè)不變對象的狀態(tài),就需要建立一個(gè)新的同類型對象,并在創(chuàng)建時(shí)將這個(gè)新的狀態(tài)存儲在新對象里。

不變模式之設(shè)計(jì)一個(gè)類。一個(gè)類的內(nèi)部狀態(tài)創(chuàng)建后,在整個(gè)生命期內(nèi)都不會發(fā)生變化時(shí),這個(gè)類被稱為不變類。這種使用不變類的做法叫作不便模式。

弱不變模式:一個(gè)類的實(shí)例狀態(tài)不可改變,但是子類的實(shí)例具有可能會變化的狀態(tài)。

對象沒有任何方法可以修改對象的狀態(tài)
所有的屬性都應(yīng)該是私有的
對象所引用的其他對象如果是可變對象的話,必須設(shè)法限制外界對這些對象的訪問,以防止外界修改這些對象。如果可能,應(yīng)該盡量在不變對象內(nèi)部初始化這些被引用到的對象,而不要在客戶端初始化。如果必須在 客戶端初始化,就應(yīng)該考慮在不變對象初始化的時(shí)候,適用這個(gè)可變對象的復(fù)制。
強(qiáng)不變模式:一個(gè)類的實(shí)例不可改變,子類的實(shí)例也不可改變

所有的弱不變模式的條件(必選)
類所有的方法都應(yīng)當(dāng)是final,這樣這個(gè)類的子類不能夠換掉此類的方法(2,3選項(xiàng)必選一個(gè))
這個(gè)類本身就是final的,不存在子類(2,3選項(xiàng)必選一個(gè))
優(yōu)點(diǎn):

易維護(hù),避免程序錯(cuò)誤
線程安全
缺點(diǎn):

如果需要修改狀態(tài),必須修建對象,可能造成資源浪費(fèi)。



選擇我們,優(yōu)質(zhì)服務(wù),不容錯(cuò)過
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è)計(jì)水平,更放心
3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話:021-58370032