封裝類要保證封裝內容的高度統一性,這些方法都大大簡化了類封裝的可維護性和重調用性。
可維護性
既然大家都知道重載是面向對象程序設計的很重要組成部分,那么你可以看出軟件的可維護性的重要性。如果能正確地封裝類,你就可以減少很多函數的更改。
在同一封裝里嚴密地聯結各個類
嚴密地聯結封裝中的各個類可以得到高凝聚的封裝。如果兩個類展示出很好的聯結性,那么這兩個類很有可能被經常地調用以提供聯系方便的服務。所以當在設計你的封裝時,你可以最大限度地減小封裝之間的依靠性,以避免各個封裝的沖突。
在同一封裝里類要統一改變
顯然的,當其他類改變時,各個嚴密結合的類也同樣受到影響。任一個類的更改都會導致與這一類相關的類的相應更改,至少,類中的函數必須更改。你可以通過在同一封裝里嚴密聯結類來避免這些風險。
然而,一些聯結不嚴密的類也被工程的其他改變而改變。在這樣的情況下,你應該把這些類放在同一封裝。因為獨立的類改變時,它們會產生其他的負影響。
在不同封裝里類不要一起調用
封裝啟發的可行性取決于是否封裝能提供真正的聯結。即使類能經常地一起被調用,它們卻不能一起被改變。所認你必須把這些類進行獨立封裝。當然,這就意味著引入多個封裝來調用獨立的類。這一方法的優點是顯而易見的。
在一個封裝里對一個類的依賴也會產生對其他類的依賴,這是必然的。當封裝中一個類改變時,整個封裝都會發生變化。
在不同封裝里類不要一起重載
不幸的是,即使在初始化時,一個類對象不能允許它自己去調用不同的類,就給軟件升級帶來不利,這樣軟件的可維護性就變得非常很重要。所以在不同的封裝里,獨立的類重載是一個最有效的方法。
關鍵的注意事項
在Java程序設計時,你必須注意以下幾點:
Containing Change ––––封裝各個類到一個單一的封裝里能減少很多更改,把所有改變都集中到一個封裝里有助于軟件的可維護性。
Class coupling –––––當在同一封裝里聯結類時,你應該注意到其他類也有可能和這一個類有關。忽視這些聯系會產生很多不必要的關聯。
Contention ––––– 前兩個啟發產生比較大的封裝,目的是調用;后兩個啟發產生比較小的封裝,目的是可維護。這前后的封裝會發生沖突。在開發過程中,你必須在程序結構上作出相應的改變。在程序設計開發初期,你應該選擇利于軟件可維護性的比較小的封裝;當在開發后期,你應該選擇利于軟件調用的比較大的封裝。
調用
當設計程序框架時,你應該集中于封裝的調用,因為Java封裝的調用和可維護非常的重要。當設計合理,程序就很容易的支持封裝的調用功能。