装饰者模式
2017-03-28 14:24:42 0 举报
装饰者模式
作者其他创作
大纲/内容
装饰者可以加上新得方法。新行为是通过在旧行为前面或后面做一些计算添加得。
ConcreteDecorator有一个实例变量,可以记录所装饰得事物(装饰者包着得Component)。
ConcreComponent是我们将要动态加上新行为得对象,它扩展自Compoent,是被装饰者。
Decorator(抽象类)
attribute1:type = defaultValue attribute2:type
operation1(params):returnTypeoperation2()
ConcreteComponent
这是装饰者共同实现得接口(也可以是抽象类)
每个装饰者都“有一个”(包装一个)组件,也就是说,装饰者有一个实例变量以保存某个Component的引用。
每个组件都可以单独使用,或者被装饰者包起来使用。需要把可扩展得方法做成抽象方法或虚方法。
ConcreteDecoratorA
Component WrappedObj attribute1:type = defaultValue attribute2:type
ConcreteDecoratorB
Component WrappedObj Object newState attribute1:type = defaultValue attribute2:type
operation1(params):returnTypeoperation2()//其它方法
装饰者可以扩展Component的状态
Component超类(接口或抽象类)
0 条评论
下一页