設計模式之裝飾者模式

裝飾模式,又名包裝器,通過裝飾對象來動態地給對象增加功能。

下面結合如下的類圖來詳細闡述。

首先,有個需要裝飾的對象(類)——ConcreteComponent類以及它的超類或接口——Component接口,內都含一個operation方法。

現在,如果,想要拓展operation方法,一可以往Component接口中加方法,然後ConcreteComponent實現,但這樣比較麻煩,每增加一個方法就必須改一次接口;而可以用裝飾模式動態增加。方法爲:

              1.建一個裝飾類Decorator(實現Component接口,並且含有接口對象component)

              2.通過繼承裝飾類Decorator得到子類ConcreteDecorator,這個子類可以動態增加新的方法,並且把該方法的調用放到該子類的operation()方法中,通過這樣覆寫operation方法來實現新方法的增加。


最後,附張比較表:

模式名

代理 適配器 裝飾
目的 控制對對象的訪問 用來處理接口間不匹配的問題,往往替所適配的對象提供一個不同的接口 動態的爲某個類型添加新的職責,也就是動態的增加功能

發佈了52 篇原創文章 · 獲贊 9 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章