不變模式

某個類對象狀態不可以變化 .弱不變模式的缺點1. 不變類子類對象可以修改狀態

不變模式 , 行為型模式一種 .
系統使用某個對象的過程中 , 需要創建數量較多的同類對象 , 同時大量對象中還普遍存在狀態相同的情況 , 此時就需要簡化對象狀態 , 使相同狀態的對象的量減少 , 降低資源的消耗 .
不變模式可以達到這樣的要求 , 當一個對象穿件之後 , 內部狀態在整個類生命周期都不會發生變化 , 如果變化則需要創建新類來完成 .
不變模式分為弱不變模式和強不變模式
弱不變模式 , 某個類對象狀態不可以變化 , 但是其子類對象的狀態可以變化 .
強不變模式 , 某個類對象狀態不可以變化 , 同時其子類對象的狀態也不能進行變化 .
不變模式一般只有一個不變類組成 , 如果討論不變模式種類需要增加子類來完成 .
不變模式達成條件
1. 不變類中沒有方法修改對象的狀態 .
2. 不變類中所有屬性都為私有 .
3. 不變類中引用的其他對象 , 必須設定外界訪問的許可權 . 以上條件滿足達到弱不變模式 .
4. 不變類中所有方法都應該為final (針對java語言) , 也就是子類不能置換掉的方法 .
5. 不變類本身就是final (針對java語言) , 也就是不變類不能被繼承 , 不會有子類存在 . 以上五條件滿足達到強不變模式 .
弱不變模式的缺點
1. 不變類子類對象可以修改狀態 , 也就是不變類子類可以不為不變類 .
2. 不變類子類可以修改父類的狀態 , 從而不變類對象變為可變對象 .
不變模式優缺點
優點 : 不變對象比可變對象更加容易維護 .
不變對象是執行緒安全的 .
缺點 : 需要修改狀態時 , 就需要通過創建新對象來完成 .

相關詞條

熱門詞條

聯絡我們