設計模式專題(七)裝飾器模式
目錄
定義
裝飾器模式又名包裝(Wrapper)模式。裝飾器模式以對客戶端透明的方式擴充物件的功能,是繼承關係的一種替代方案。
裝飾器模式的結構
裝飾器模式以對客戶透明的方式動態的給一個物件附加上更多的責任。換言之,客戶端並不會覺得物件在裝飾前和裝飾後有什麼不同。裝飾器模式可以在不是用創造更多子類的情況下,將物件的功能加以擴充。
裝飾器模式的類圖如下:
裝飾器模式的類圖
在裝飾器模式中的角色有:
- 抽象構件(Component)角色:給出一個抽象介面,已規範準備接收附加責任的物件。
- 具體構件(ConcreteComponent)角色:定義一個將要接收附加責任的類
- 裝飾(Decorator)角色:持有一個構件(Component)物件的例項,並定義一個與抽象構件介面一致的介面。
- 具體裝飾(ConcreteDecorator)角色:負責給構件物件“貼上”附加的責任。
示例程式碼
抽象構件角色
public interface Component {
public void sampleOpreation();
}
具體構件角色
public class ConcreteComponent implements Component {
@Override
public void sampleOpreation() {
// TODO 完成相關的業務程式碼
}
}
裝飾角色
public class Decorator implements Component {
private Component component;
public Decorator(Component component) {
this.component = component;
}
@Override
public void sampleOpreation() {
//委派給構件
component.sampleOpreation();
}
}
具體裝飾角色A
public class ConcreteDecoratorA extends Decorator {
public ConcreteDecoratorA(Component component) {
super(component);
}
@Override
public void sampleOpreation() {
super.sampleOpreation();
//TODO 完成相關的業務程式碼
}
}
具體裝飾角色B
public class ConcreteDecoratorB extends Decorator {
public ConcreteDecoratorB(Component component) {
super(component);
}
@Override
public void sampleOpreation() {
super.sampleOpreation();
//TODO 完成相關的業務程式碼
}
}
相關文章
- 設計模式----裝飾器模式設計模式
- 設計模式-裝飾器模式設計模式
- [設計模式] 裝飾器模式設計模式
- Python設計模式-裝飾器模式Python設計模式
- 設計模式之-裝飾器模式設計模式
- 設計模式(八)裝飾器模式設計模式
- java設計模式--裝飾器模式Java設計模式
- 設計模式(六):裝飾器模式設計模式
- 設計模式之【裝飾器模式】設計模式
- PHP設計模式- Decorator 裝飾器模式PHP設計模式
- Go 設計模式之裝飾器模式Go設計模式
- Java 設計模式(五)《裝飾器模式》Java設計模式
- java設計模式之裝飾器模式Java設計模式
- Java設計模式系列-裝飾器模式Java設計模式
- 設計模式——裝飾模式設計模式
- 設計模式-裝飾模式設計模式
- 七、GO 程式設計模式: 修飾器Go程式設計設計模式
- Java學設計模式之裝飾器模式Java設計模式
- 【趣味設計模式系列】之【裝飾器模式】設計模式
- 設計模式之裝飾器模式(decorator pattern)設計模式
- 23種設計模式(三)--裝飾器模式設計模式
- PHP設計模式之裝飾器模式(Decorator)PHP設計模式
- c++設計模式-裝飾器模式和代理模式C++設計模式
- 設計模式 #4 (裝飾器模式、介面卡模式)設計模式
- 設計模式——裝飾者模式設計模式
- 設計模式-裝飾者模式設計模式
- [設計模式]裝飾者模式設計模式
- 設計模式 第七章 橋接模式、裝飾者模式、組合模式設計模式橋接
- 裝飾器設計模式 - Gene Zeiniss設計模式
- 原始碼中的設計模式--裝飾器模式原始碼設計模式
- C#設計模式-裝飾器模式(Decorator Pattern)C#設計模式
- 裝飾設計模式設計模式
- 設計模式系列之「裝飾模式」設計模式
- 設計模式--裝飾模式(Decorator Pattern)設計模式
- 小白設計模式:裝飾者模式設計模式
- 設計模式-裝飾模式(Decorator Pattern)設計模式
- 軟體設計模式————(裝飾模式)設計模式
- 極簡設計模式-裝飾模式設計模式