Decorator模式的一些理解~
来源:互联网 发布:校园网网络工程设计书 编辑:程序博客网 时间:2024/06/08 16:15
原来转载的文章在这里
http://blog.csdn.net/qq276592716/article/details/6679695
里面说到:
在结构图中,ConcreteComponent和Decorator需要有同样的接口,因此ConcreteComponent和Decorator有着一个共同的父类。这里有人会问,让Decorator直接维护一个指向ConcreteComponent引用(指针)不就可以达到同样的效果,答案是肯定并且是否定的。肯定的是你可以通过这种方式实现,否定的是你不要用这种方式实现,因为通过这种方式你就只能为这个特定的ConcreteComponent提供修饰操作了,当有了一个新的ConcreteComponent你又要去新建一个Decorator来实现。但是通过结构图中的ConcreteComponent和Decorator有一个公共基类,就可以利用OO中多态的思想来实现只要是Component型别的对象都可以提供修饰操作的类,这种情况下你就算新建了100个Component型别的类ConcreteComponent,也都可以由Decorator一个类搞定。这也正是Decorator模式的关键和威力所在了。
这段话开始的时候我觉得很有道理,现在回头看发现上面说的直接维护一个ConcreteComponent引用(指针)是不好的其实不是真正的原因。我的想法如下:
1.把它换成一个接口,维护一个接口指针就可以推翻上面的说法。
2.之所以不直接维护一个ConcreteComponent引用(指针)的原因是因为装饰者模式希望能够装饰已经装饰过的东西,也就是说相框里面放的可以是带有相片的相框,一层一层 的 装饰。这才是设计ConcreteComponent和Decorator具有同样的接口的原因。
- Decorator模式的一些理解~
- 软考复习之Decorator模式的理解
- 关于decorator 的理解
- python decorator的理解
- 设计模式的一些理解
- 用linked list 来理解Decorator 模式
- java 的decorator 装饰模式
- 简单Java代码实例助你通俗易懂的理解什么是装饰(者)设计模式 (Decorator)
- python的decorator的一些探究
- Decorator模式
- Decorator模式
- decorator模式
- Decorator模式
- Decorator模式
- Decorator模式
- Decorator模式
- Decorator模式
- decorator模式
- 不设置密码登录localhost
- 重新加载父页中iframe的方法
- 忘记root密码,如何修改出错的sudoers文件
- zoj 2830 Champion of the Swordsmanship
- shell 和oracle sqlplus 参数传递
- Decorator模式的一些理解~
- VC编译ADO的开发环境和客户环境的细微差别可能导致的失败 pCmd.CreateInstance("ADODB.Command") 0x80004002
- magento 网站迁移
- windows xp下word2003无法显示最近打开文档解决:
- 用多点触摸缩放图像
- UI开发第六篇——仿QQ的滑动Tab
- wpf动画效果(转)
- Gossip
- 2011 阿里巴巴 1003