Decorator Pattern (装饰者模式)
来源:互联网 发布:linux初学者版本 编辑:程序博客网 时间:2024/05/22 00:38
装饰者模式( Decorator Pattern )
意图 : 动态的给一个对象添加一些额外的功能,IO这块内容体现出了装饰模式,Decorator模式相比生成子类更为灵活。
角色 :
1)抽象构件角色(Component)--- 定义成一个接口类型
2)具体构件角色 (ConcreteComponent) --- 该类(被装饰者)实现了 Component 接口,
3)装饰角色 (Decorator) --- 该类实现了 Component 接口,并持有 Component接口的引用
4)具体装饰角色 (ConcreteDecorator) --- 该类继承了装饰类
UML实现:
代码实现:
Component.java
package com.decorator ;//抽象构件角色public interface Component{public void operation() ;}
ConcreteComponent.java
package com.decorator ;//具体构件角色public class ConcreteComponent implements Component{public void operation(){System.out.println("实现功能A") ;}}
Decorator.java
package com.decorator ;//装饰角色,持有一个构件角色的引用public class Decorator implements Component{ Component component = null ;public Decorator(Component component){this.component = component ;}public void operation(){this.component.operation() ;}}
ConcreteDecoratorA.java
package com.decorator ;//具体装饰角色Apublic class ConcreteDecoratorA extends Decorator{public ConcreteDecoratorA(Component component){super(component) ;}public void operation(){super.operation() ;System.out.println("实现功能B") ;}}
ConcreteDecoratorB.java
package com.decorator ;//具体装饰角色Bpublic class ConcreteDecoratorB extends Decorator{public ConcreteDecoratorB(Component component){super(component) ;}public void operation(){super.operation() ;System.out.println("实现功能C") ;}}
Client.java
package com.decorator ;public class Client {public static void main(String[] args) {//装饰者一般不用出现在客户端 , 因它内部自己会处理//ConcreteComponent cc = new ConcreteComponent() ;//ConcreteDecoratorA cd = new ConcreteDecoratorA(cc) ;//ConcreteDecoratorB cd2 = new ConcreteDecoratorB(cd) ;//cd2.operation() ; //上面的代码等价于下面的代码ConcreteDecoratorB cd = new ConcreteDecoratorB(new ConcreteDecoratorA(new ConcreteComponent())) ;cd.operation() ;}}
小结:
装饰者和被装饰者拥有共同的接口;
装饰者一般不用客户端去调用 , 因它内部自己会处理;
可以用一个或多个装饰者去包装一个对象,具体装饰类和装饰类可以组合成多种行为;
- Decorator Pattern (装饰者模式)
- 装饰者模式(Decorator Pattern)
- 装饰者模式(decorator pattern)
- 装饰者模式(Decorator Pattern)
- 装饰者模式(Decorator Pattern)
- Decorator Pattern 装饰者模式
- 装饰者模式(Decorator Pattern)
- 装饰者模式 Decorator Pattern
- Decorator Pattern(装饰者模式)
- 装饰者模式-Decorator Pattern
- 装饰者模式 | Decorator Pattern
- 装饰模式Decorator Pattern
- 装饰模式(Decorator Pattern)
- 装饰模式(Decorator Pattern)
- 装饰模式--Decorator pattern
- 装饰模式 Decorator Pattern
- 装饰模式【DECORATOR PATTERN 】
- 装饰模式【Decorator Pattern】
- HIFI耳机基础知识入门
- 黑马程序员-序列化
- 绿皮书再版!ECMAScript 5th有讲呵!
- 数据结构---栈实现
- C++构造函数
- Decorator Pattern (装饰者模式)
- 第5周实验报告任务1.4
- mini2440 LED驱动程序之完全剖析
- 编码方式转换
- 配置config.bib的注意事项以及错误分析(含OEMAddressTable介绍)
- websphere 中datasource 的配置
- linux下视频采集代码
- POJ1157 LITTLE SHOP OF FLOWERS
- Hibernate锁机制