在更大的计划之前,先温习一下Design Pattern的功课。
看了《Head First Design Patterns》里讲Decorator的样章,发现JOLT大奖不是白拿的,叙事能力之强,表达之清晰,不是那些满腹经伦的老先生可以比的。而且整个Pattern的讲述过程循序渐进,真的可以保证--小白都能学会设计模式。如果有中文版一定买一本,下一代的程序员有福了。
可惜就只有样章。Head First系列的电子书都不好找,只好还是翻出老先生们的书来看。
这次温习很快做完,其实GOF80%的模式,都是基于一个原则:
优先使用对象组合,而不是类继承.
初学OO的人,都习惯用现实世界去映射程序世界,继承是最自然的思路。GOF其实就是在扭转这个思路,让大家习惯使用组合,委托和程序对象。
组合机制只要根据两大原则,就可以变化出绝大部分的GOF模式.
1.任何耦合都可以通过增加一个中间层来解耦
代表模式有: Facade , Mediator , Adapter 和 Factory/Abstract Factory , Proxy
2.通过组合来扩充对象特性,可以避免纯继承引起的类爆炸
代表模式有: Bridge , Decorator , Chain of Response , Strategy/Command
3.另外还有些独立的常用模式如Singleton , Visitor , Observe
写给自己看的重放慢镜:
1.Facade : 为了减低一个系统和另一个系统的内部类之间的耦合性。建立对象A代理系统的主要功能
2.Mediator:为了减低两个对象之间的耦合性。建立一个中间对象C,同时具有A和B的实例,并把C赋给A和B
3.Adapter: 为了匹配不同的对象使用同一接口。建立对象B,代理A的方法并使其接口匹配。
4.factory: 为了不依赖于具体对象而依赖于接口的创建对象。程序通过Factory获得对象。
5.Proxy: 除了不依赖于具体对象,还能在过程中插入动作.程序通过Proxy调用对象的方法(AOP)
6.Bridge: 如果对象特征向两个方向发展,Bridge能够避免两组对象特征的排列组合引起类爆炸。一组特征如大杯、中杯,一组特征如加奶、加糖。把其中一组特征抽象分离为接口2,把接口2的实例传入到主继承树中。
7.Decorator: 通过包裹原对象,为原对象的动作添加新的动作。新类继承于原类,有原类同样的方法和原类的实体调用新类的方法时,会调用原类实体的原方法,再加上新类对其的扩展。
8.COR: 通过安排职责链,让各对象根据情况添加自己的动作。每个对象都有下一个对象的指针,根据情况完成自己的操作后,把控制传给下一位。Apahce Jarkarta Commands有chains库。
9.Strategy/Command: Template模式的对立物,把动作封装为对象进行组合。
10.Observe: 通过一套机制,监控Observebal对象的状态变化。JDK实现了两套接口进行辅助。
11.Visitor: 通过一套机制,让独立对象遍历组合里的所有对象,执行共同的动作。被访问对象有个accept(访问者)函数,在函数里面调用访问者.访问(this),不算很优雅的一个模式。
分享到:
相关推荐
又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······ 你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求...
Head First Design Patterns 中文版 带目录 设计模式经典书籍
head first design patterns是一本教您如何設計一個程式的書
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
Pages from Head First Design Patterns (英文高清版)_part1.rar
深入浅出设计模式 Head First Design Patterns 英文影印版本,不是复印或者拍摄那种,非常清晰
这个压缩包是HeadFirst Design Patterns的源代码。希望能对有需要的人有所帮助
Head First Design Patterns(中文版)设计模式 java。 Head First Design Patterns(中文版) 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除 设计模式 ...
head first design patterns电子版本(第1部分)
Kathy Sierra FHBert Bates是畅销的HeadFirst系列书籍的创立者,也是Sun公司Java开发员认证考试的开发者。《Head First设计模式(中文版)》的产品设计应用神经生物学、认知科学,以及学习理论,这使得此书能够将这些...