《java與模式》-6 代碼中應該遵守的原則

里氏替換原則

凡基類適用的地方,子類一定適用。子類可以直接替換基類。


依賴倒轉原則

要依賴於抽象不要依賴於具體。
要針對接口編程

  • 依賴倒轉雖然強大,卻不容易實現。而且維護這樣的系統需要很好的面向對象的設計知識;
  • 並且並不是所有類都會發生變化,一些相當穩定的類,就不必有抽象類型。

聯合適用java接口和java抽象類

java接口用來聲明類型定義規則,抽象類做默認實現,具體實現類就直接繼承抽象類,這樣就直接擁有了默認實現。
如果接口需要新增方法了,那麼就可以直接,在抽象類中做默認實現,這樣,所有的子類就都得到了這個具體方法。
例子有很多 Map、List、Set


接口隔離原則

使用多個專門的接口比使用單一的總接口好。
儘量控制對外接口,
定製服務:不要向客戶端提供不需要的方法。對外的接口要控制接口的寬度。


合成聚合複用原則

要儘量使用合成聚合,儘量不要使用繼承。
缺點:這種複用建造的系統需要更多的對象需要管理。


迪米特法則

一個對象應當對其他對象有儘可能少的瞭解。
例:某人、朋友、陌生人,某人不應直接與陌生人相互作用,而應該是某人與朋友相互作用,朋友與陌生人相互作用。這時候就是朋友將某人對陌生人的調用轉發給了陌生人 –這就是調用轉發。
具體參見 門面模式、調停者模式。

廣義的迪米特法則:對象之間的信息流量、流向、信息的影響的控制。
好的設計是將實現的細節隱藏起來,就是封裝;

設計時應當注意一下幾點:
1. 應當創建弱耦合的類;
2. 結構上降低成員的訪問權限;儘量private
3. 設計上儘量設計成不變類;final
4. 對其它對象的引用應當降低到最低;
5. 變量只在使用的時候聲明(儘量設置小的局域變量)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章