1.定義:動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。
2.uml類圖
3.簡單介紹:component是定義乙個物件介面,可以給這些物件動態地新增職責。concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責。decorator,裝飾抽象類,繼承了component,從外類來擴充套件component類的功能,但對於component來說,是無需知道decorator的存在的。至於concretedecorator就是具體的裝飾者,起到給component新增職責的功能。
4.簡單**實現
//裝飾者模式抽象類
package com.guo.decoratorpattern;
public
abstract
class component
//具體操作的被裝飾的類
package com.guo.decoratorpattern;
public
class
concretecomponent
extends
component
}
//裝飾者抽象類
package com.guo.decoratorpattern;
public
abstract
class
decorator
extends
component
@override
public
void
operation() }}
//裝飾者實現類
package com.guo.decoratorpattern;
public
class
decoratorcomponent
extends
decorator
@override
public
void
operation()
}
//客戶端呼叫示例
package com.guo.decoratorpattern;
public
class decoratorclient
}
5.總結
大話設計模式讀書筆記 裝飾模式
裝飾模式,是物件導向程式設計領域中,一種動態地往乙個類中新增新的行為的設計模式。就功能而言,修飾模式相比生成子類更為靈活,這樣可以給某個物件而不是整個類新增一些功能。通過使用裝飾模式,可以在執行時擴充乙個類的功能。原理是 增加乙個修飾類包裹原來的類,包裹的方式一般是通過在將原來的物件作為修飾類的建構...
讀書筆記 大話設計模式
大話設計模式 的確寫的很不錯。把晦澀解懂的設計模式,講的通俗易懂。邊讀邊用evernote做筆記,把印象深刻的整理了一下。先補習一下uml的圖示法 繼承,介面,組合,依賴,關聯 策略模式 strategy 定義一系列演算法,所有演算法完成的都是相同的工作,只是實現不同。減少演算法與使用類之間的藕合。...
大話設計模式讀書筆記(十) 建造者模式
將乙個複雜物件的構建與他的表示分離,使同樣的構建過程可以建立不同的表示。具體產品類 public class product public void show 建造者介面 public inte ce builder建造者介面實現 public class concretebuilder imple...