欢迎光临
我们一直在努力

Head First Design Patterns-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

    在更大的计划之前,先温习一下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),不算很优雅的一个模式。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Head First Design Patterns-JSP教程,Java技巧及代码
分享到: 更多 (0)