装饰模式 Decorator
来源:互联网 发布:重庆鸿巨网络名企好吗 编辑:程序博客网 时间:2024/06/07 02:41
装饰模式用来动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。
这个图是用JUDE画的,光看图难以理解这个模式,从书上的例子可以看出,这个模式的关键在于装饰类是被装饰类(Component)的子类,同时装饰类还聚合了被装饰类。装饰类有个类似 setComponent(Component& component)的接口,内部保存了Component对象的引用。由于装饰类也是Component的子类,所以他也拥有Component的接口,比如这儿的operation接口,不同的是,实现这个接口的时候,装饰的抽象类直接调用了所聚合的Component对象的接口,而具体的装饰类则调用抽象父类的接口,并添加了自己的实现(即添加装饰)。由于具体装饰类是Component的子类,所以可以被其他的装饰类聚合(即其他装饰类可以包装他),这样可以通过调用setComponent将装饰逐个添加,最后一个具体装饰类的接口调用时会从最上层的组件的接口依次调用,逐一添加装饰,最后添加自己这个装饰。
- 装饰模式Decorator Pattern
- 装饰(Decorator)模式
- 装饰模式(Decorator Pattern)
- 装饰(Decorator)模式
- 装饰模式:Decorator
- 装饰模式(Decorator)
- 装饰模式(Decorator Pattern)
- 装饰模式Decorator
- Decorator 装饰者模式
- 装饰模式(Decorator)
- 装饰模式(Decorator)
- DECORATOR (装饰)模式
- Decorator装饰模式
- 装饰器(Decorator)模式
- 装饰模式(Decorator)
- Decorator(装饰)模式
- 装饰者模式(Decorator)
- 装饰模式Decorator
- 几个设计原则
- E4X学习笔记
- 充分利用 Xerces-C++,第 2 部分 (from IBM) 2011.06.07
- 说说IO - IO的分层
- UpdatePanel中用后台调用Javascript
- 装饰模式 Decorator
- [cygwin]cygwin常用命令及find命令说明
- Python中的with...as语法
- 代理模式Proxy
- 2011-06-07 shell脚本学习
- 工厂方法模式 Factory Method
- 【转】插件式设计的架构模型与实例
- 业界资讯:flash player 10.3 debug 发布
- ARM中断异常处理的返回