歡迎您光臨本站 註冊首頁

Java設計模式常用原則解析

←手機掃碼閱讀     kyec555 @ 2020-05-30 , reply:0

1.單一職責原則 每一個類負責一個職責(一個類只有一個方法)

2.里氏替換原則 所有引用基類的地方都能透明的使用其子類的對象。

  問題來了:

  比如原來

   class A{     fun();//完成P1功能   }


  現在需要添加新功能

   class B extends A{//A的子類B實現了fun的功能)     fun();完成功能為P(原來的P1功能加上新增的P2功能)   }


  則,在子類B完成新功能P2的時候可能會導致原有功能P1發生故障

  解決辦法

  當使用繼承的時候,除了添加新的方法來完成新功能P2之外,儘量不要重寫父類A的方法,也儘量不要重載父類A 的方法

3.依賴倒置原則(核心思想,面向接口編程)

定義:高層模塊不應該以來底層模塊,二者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象;

問題:

  類A(高層模塊)直接依賴B(低層模塊)

 eg:class A{     public void fun(B b){};   }


  現在想要把類A的依賴改為C,則必須修改類A的代碼為

 eg:class A{     public void fun(C c){};   }


  解決辦法:

  類B和類C都實現接口Interface D;

  類A依賴接口D

  eg:class A{     public void fun(D d){};    }


  這樣在使用類A的fun方法時可以這樣使用fun(new B());或者fun(new C());

4.接口隔離原則

將臃腫的接口才氛圍獨立的幾個接口,這樣子類在實現該接口時就不必要實現臃腫接口的所有的抽象方法

5.迪米特法則(最少知道法則)

  降低類與類之間的耦合度,從而減少當一個類改變時對另一個類造成的影響。

  簡單來說,就是一個類對自己以來的類知道的越少越好。對於被以來的類,無論邏輯多麼複雜,儘可能的將邏輯封裝在類的內部,對外提供一個public的方法就行了。

  更簡單的定義:至於直接的朋友(稱出現成員變量、方法參數、方法返回值中的類為直接朋友,出現在局部變量中的類不是直接的朋友)進行通信。

  (依賴的三種方式,方法參數,局部變量-方法內的變量,靜態變量-方法中調用某個類的靜態方法)

6.開閉原則

  一個軟件實體類、模塊、和函數應該對擴展開放,對修改關閉。

  問題:當軟件升級維護時,隊友俺有代碼進行修改,可能會給舊代碼引入錯誤。

  解決辦法:當軟件需要變化時,儘可能通過擴展軟件實體的行為來實現變化,兒不是通過修改已有的代碼來實現變化。


[kyec555 ] Java設計模式常用原則解析已經有224次圍觀

http://coctec.com/docs/java/show-post-236307.html