设计模式之装饰模式
2017-04-11 12:16
162 查看
定义:动态地给一个对象加入一些额外的职责,就添加功能来说,装饰模式比生成子类更为灵活。
结构图:
演示样例代码:
详细对象操作!
详细装饰对象A的操作
详细装饰对象B的操作
结构图:
演示样例代码:
public abstract class Component { public abstract void operation(); } public class ConcreteComponent extends Component{ @Override public void operation() { // TODO Auto-generated method stub System.out.println("详细对象操作!"); } } public class ConcreteDecoratorB extends Decorator { @Override public void operation() { // TODO Auto-generated method stub super.operation(); System.out.println("详细装饰对象B的操作"); } private void AddedBehavior() { System.out.println("我是B操作"); } } public class ConcreteDecoratorA extends Decorator { private String addedState; @Override public void operation() { // TODO Auto-generated method stub super.operation(); addedState = "New State"; System.out.println("详细装饰对象A的操作"); } }client代码例如以下所看到的:
public class Client { public static void main(String[] args) { ConcreteComponent c = new ConcreteComponent(); ConcreteDecoratorA d1 = new ConcreteDecoratorA(); ConcreteDecoratorB d2 = new ConcreteDecoratorB(); d1.setComponent(c); d2.setComponent(d1); d2.operation(); // d1.setComponent(d2); // d1.operation(); } }执行结果例如以下:
详细对象操作!
详细装饰对象A的操作
详细装饰对象B的操作
相关文章推荐
- 设计模式10-装饰模式
- 设计模式之装饰器模式
- 设计模式实践(四)装饰模式(decorator)
- JAVA开发的23种设计模式之 — 装饰器模式 && 代理器模式
- 设计模式---装饰
- 小鸦之设计模式(4) - 装饰模式Decorator pattern
- C#设计模式—装饰模式
- 装饰设计模式
- Java设计模式之再从[暗黑破坏神"装备镶嵌宝石系统"]分析装饰(Decorator)模式
- 设计模式之装饰器模式
- 设计模式2--装饰模式(the decorator design pattern)
- PHP设计模式之装饰模式
- (三)Java设计模式--装饰器模式
- 设计模式-装饰模式
- 设计模式之四——装饰模式
- (三)Java设计模式--装饰器模式
- (三)Java设计模式--装饰器模式
- 设计模式--装饰模式
- [转] 设计模式---装饰模式(Decorator)
- iOS设计模式(MVC和单例模式,门面和装饰器模式,适配器和观察者模式以及备忘录和命令模式)