星期天 五月 9, 2010 19:39
设计模式学习总结
这段时间更新了很多篇有关设计模式的学习笔记,收获不算太多,但起码让我对面向对象编程有了一个更深刻的认识。模式与模式之间没有界限分明的三八线,也没有一个万能的模式主宰了Programmer 的编程思维。模式学习到最后,Visitor 与Strategy 的笔记也实在没有动力更新下去,只打算在这篇设计模式笔记的大总结里,稍作复习。
不要问我还记得哪些模式的哪些细节,他们无非是,1)面向接口编程;2)使用对象组合来解耦,努力避免继承;3)在易碎变化的地方进行封装。把面向的对象的精髓“封装、继承、多态”发挥到一定境界,就是模式了。
在学习设计模式之前,其实还有一点畏惧的情绪在里面。学习的过程中,发现,这样的模式,全然都是前辈们的经验。学习完之后,感觉自己还是内功不够,比如:数据结构。虽然,目前把这些模式都领略了一遍,但可以很清楚的意识到很多内在的精髓不一定内化到自己的脑袋里。今后在工程中可能还需要回过头来重新学习。这里把一个提纲式的笔记列一下:
创建模式
Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。
Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。
结构模式
Adapter模式注重转换接口,将不吻合的接口适配对接
Bridge模式注重分离接口与其实现,支持多维度变化
Composite模式注重统一接口,将“一对多”的关系转化为“一对一”的关系
Decorator模式注重稳定接口,在此前提下为对象扩展功能
Facade模式注重简化接口,简化组件系统与外部客户程序的依赖关系
Flyweight 模式注重保留接口,在内部使用共享技术对对象存储进行优化
Proxy 模式注重假借接口,增加间接层来实现灵活控制
行为模式
Template Method模式封装算法结构,支持算法子步骤变化
State模式注重封装与状态相关的行为,支持状态的变化
Memento模式注重封装对象状态变化,支持状态保存/恢复
Mediator模式注重封装对象间的交互,支持对象交互的变化
Chain Of Responsibility模式注重封装对象责任,支持责任的变化
Command模式注重将请求封装为对象,支持请求的变化
Interpreter模式注重封装特定领域变化,支持领域问题的频繁变化
Observer模式注重封装对象通知,支持通信对象的变化
Visitor模式注重封装对象操作变化,支持在运行时为类层次结构动态添加新的操作。
Strategy模式注重封装算法,支持算法的变化
Iterator 模式注重封装集合对象内部结构,支持集合的变化
这段时间的学习告一段落,我想,这更是一个新的起点,对于如何阅读、学习别人的代码,会有很大的提升。
- Category: 设计模式
- No Comments
最近评论