裝飾者模式和適配器模式

1. 裝飾者模式

裝飾者模式是比較常用的模式,比如Spring session、Mybatis緩存中以及JDK的java.io包中都有着廣泛的應用。

1.定義

動態的將責任附加到對象身上。若要擴展功能,裝飾者提供比繼承更彈性的替代方案。

2.優缺點

  • 優點:在不影響其他類的前提下增加功能,當不能使用繼承的時候可以使用裝飾者模式

  • 缺點:使用裝飾者模式使得小的類變多,甚至出現類爆炸的情況,在調用關係複雜,不易排查錯誤。

3.類圖

4. 用到的設計原則

  1. 對擴展開放,對修改關閉
  2. 封裝變化
  3. 面向抽象
  4. 多用組合少用繼承

 

2. 適配器模式

適配器模式也是一個比較常用的設計模式,他又分爲對象適配器模式和類適配器模式。

1.定義:

將一個類的接口,轉換爲客戶期望的另一個接口。適配器讓原本不兼容的類可以合作無間。

2.優缺點:

  • 優點:增加類的複用性,靈活性和擴展性都很好,符合開閉原則
  • 缺點:增加代碼複雜性,調用較多,排查比較困難。

3.類圖

4. 用到的設計原則

  1. 對擴展開放,對修改關閉
  2. 多用組合,少用繼承
  3. 面向抽象

3.兩種設計模式的聯繫與區別

在學習這兩種設計模式的時候,感覺他們十分的相似,但是卻有不盡相同

1.裝飾者模式

表示的是與“責任”相關的,每當用到裝飾者模式,就表示有新的行爲或責任要加入其中。裝飾者可以被包裝多次,對用戶來說他不知道裝飾的對象被裝飾了多少次。

2.適配器模式

一定會進行接口的轉換,客戶也是被解耦的。

 

 

 

 

 

 

 

 

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