Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>设计模式>>Headnbsp;Firstnbsp;Designnbsp;Patterns
Headnbsp;Firstnbsp;Designnbsp;Patterns
2007-04-13   来源:www.javaresearch.org  作者:未知

原文:http://blog.csdn.net/calvinxiu/archive/2005/04/20/355652.aspx

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



  --相关文章--
· 面向对象编程,我的思想 (2007-04-13)
· 面向对象的思维方式 (2007-04-13)
· 通过Javanbsp;Swing看透MVC设计模式 (2007-04-13)
· 适配器模式(Adapternbsp;Pattern) (2007-04-13)
· 追MM与Java的23种设计模式 (2007-04-13)
· 责任链模式(Chainnbsp;ofnbsp;Responsibility) (2007-04-13)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接