裝飾模式
裝飾模式的角色
抽象構件角色(Component):給出一個抽象介面,以規範準備接收附加責任的物件。
具體構件角色(Concrete Component):定義將要接收附加責任的類。
裝飾角色(Decorator):持有一個構件(Component)物件的引用,並定義一個與抽象構件介面一致的介面。
具體裝飾角色(Concrete Decorator):負責給構件物件“貼上”附加的責任。
Java IO中的裝飾模式
在IO中,具體構件角色是節點流,裝飾角色是過濾流。
FilterInputStream和FilterOutputStream是裝飾角色,而其他派生自它們的類則是具體裝飾角色。
裝飾模式的特點
裝飾物件和真實物件有相同的介面。這樣客戶端物件就可以以和真實物件相同的方式和裝飾物件互動。
裝飾物件包含一個真實物件的引用(reference)。
裝飾物件接收所有來自客戶端的請求,它把這些請求轉發給真實的物件。
裝飾物件可以在轉發這些請求之前或之後附加一些功能。
這樣就確保了在執行時,不用修改給定物件的結構就可以在外部增加附加的功能。
相關文章
- 修飾者模式(裝飾者模式,Decoration)模式
- 裝飾者模式模式
- 設計模式——裝飾模式設計模式
- 設計模式-裝飾模式設計模式
- 設計模式——裝飾者模式設計模式
- 設計模式----裝飾器模式設計模式
- 設計模式-裝飾器模式設計模式
- 設計模式-裝飾者模式設計模式
- [設計模式]裝飾者模式設計模式
- [設計模式] 裝飾器模式設計模式
- 裝飾模式 (Decorator Pattern)模式
- 裝飾器模式(Decorator)模式
- 裝飾設計模式設計模式
- 裝飾者模式(1)模式
- Python裝飾器模式Python模式
- 裝飾模式(裝飾設計模式)詳解——小馬同學@Tian設計模式
- 設計模式系列之「裝飾模式」設計模式
- 設計模式--裝飾模式(Decorator Pattern)設計模式
- 小白設計模式:裝飾者模式設計模式
- Python設計模式-裝飾器模式Python設計模式
- 設計模式之-裝飾器模式設計模式
- 設計模式-裝飾模式(Decorator Pattern)設計模式
- 設計模式(八)裝飾器模式設計模式
- 軟體設計模式————(裝飾模式)設計模式
- java設計模式--裝飾器模式Java設計模式
- 極簡設計模式-裝飾模式設計模式
- 設計模式(六):裝飾器模式設計模式
- 設計模式之裝飾者模式設計模式
- 設計模式之【裝飾器模式】設計模式
- GoLang設計模式21 - 裝飾模式Golang設計模式
- Design Patterns in Android:裝飾模式Android模式
- Decorator裝飾設計模式設計模式
- 設計模式系列10–裝飾者模式設計模式
- PHP設計模式- Decorator 裝飾器模式PHP設計模式
- PHP設計模式之裝飾者模式PHP設計模式
- Go 設計模式之裝飾器模式Go設計模式
- 設計模式之裝飾者模式(二)設計模式
- 設計模式之裝飾者模式(一)設計模式
- Java設計模式(3)-裝飾者模式Java設計模式