Decorator Pattern (装饰者模式)

装饰者模式( Decorator Pattern )

意图 : 动态的给一个对象添加一些额外的功能,IO这块内容体现出了装饰模式,Decorator模式相比生成子类更为灵活。

 

角色 :

1)抽象构件角色(Component)--- 定义成一个接口类型

2)具体构件角色 (ConcreteComponent) --- 该类(被装饰者)实现了 Component 接口,

3)装饰角色 (Decorator) --- 该类实现了 Component 接口,并持有 Component接口的引用

4)具体装饰角色 (ConcreteDecorator) --- 该类继承了装饰类

 

UML实现:

 

代码实现:

Component.java

 


 

ConcreteComponent.java

 


 

Decorator.java

 

 

ConcreteDecoratorA.java

 

 

ConcreteDecoratorB.java

 

 

Client.java

 


小结:

装饰者和被装饰者拥有共同的接口;

装饰者一般不用客户端去调用 , 因它内部自己会处理;

可以用一个或多个装饰者去包装一个对象,具体装饰类和装饰类可以组合成多种行为;

 

 

posted on 2012-03-16 20:38  spring学习笔记  阅读(387)  评论(0编辑  收藏  举报