论坛首页 Java企业应用论坛

设计模式的练习代码

浏览 5434 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-05   最后修改:2010-07-02
面试时候问到Builder模式,没答上来,受打击了,so,再把设计模式资料学习一遍。设计模式就是OO思想的升华,如果Java基础够好,面向对象思想理解够深入,一些模式在编程实践中自然就会用出来。

这个代码中,包括了大部分模式的代码。

还有一个教训就是:尽量看英文资料,许多地方比中文资料写的要明白清楚。
-------------------------------------------------

/**
* 声明代码及资料大多都是源自网上,并非我原创;有些已指明出处,有些未指明;不一一感谢,此为声明。
* Version: 0.0.1
*/
创建类型的模式包括

· 工厂模式 (Factory Pattern) - 根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,而这一组类有一个公共的抽象父类。
· 抽象工厂模式 (Abstract Factory Pattern) - 抽象工厂模式也可以根据提供的数据生成一组类中某一个类的实例,而这一组类有一个公共的抽象父类。只不过它定义的是一个接口。
· 单例模式 (Singleton Pattern) - 根据单一模式实现的类只允许有一个是类,并且提供了一个全局指针来引用该实例。
· 原型模式 (Prototype Pattern) - 原型模式通过对类的实例进行拷贝来创建新的实例。
· 创建者模式 (Builder Pattern) - 构造者模式将一个复杂对象的构造过程和它的表现层分离开来,这样类就可以根据不同情况展现出不同的表现方式。

结构类型的模式
结构类型的模式将类和对象组合起来,以构成更加复杂的结构。它又被划分为类模式和对象模式。类模式和对象模式之间的区别在于类模式通过继承关系来提供有效的接口;
而类模式通过对象合成或将对象包含在其它对象中的方式构成更加复杂的结构。

· 适配器模式 (Adapter Pattern) - 适配器模式可以将一个类的接口和另一个类的接口匹配起来。
· 桥接模式 (Bridge Pattern) - 桥梁模式对客户端程序提供一个固定的接口,但是允许开发人员变化实际的实现类。这样开发人员就可以将接口是具体的实现类分离开来。
· 组合模式 (Composite Pattern) - 复合模式可以将多个对象进行复合,其中的每个对象可以是简单对象,也可以是复合对象。
· 代理模式 (Proxy Pattern) - 代理模式利用一个简单的对象替代一个复杂的对象,当复杂对象在需要的时候才会被加载到系统中,这样可以节约系统资源,提高系统的响应速度。在网络环境中这种模式很有用处。
· 装饰模式 (Decorator Pattern) - 通过修饰模式,开发人员可以在运行时将特定的功能绑定在对象上。
· 轻量模式 (Flyweight Pattern) - 轻量模式通过将对象中的一部分数据保存在对象外,在调用对象中的方法时再将这些数据传回对象。这样做可以减少大量比较简单的对象占用的空间。
· 门面模式 (Facade Pattern) - 正面模式将复杂的类层次结构组织起来,通过一个简单的接口来获得层次结构中的数据。

行为类型的模式
行为类型的模式主要是那些处理对象之间通讯的模式,该类型的包括以下模式

· 观察者模式 (Observer Pattern) - 观测者模式可以在发生变化时将变化通知多个类。
· 中介者模式 (Mediator Pattern) - 中介模式可以通过一个中间类来控制若干个类之间的通讯,并且这些类相互之间不需要了解对方的信息。
· 访问者模式 (Visitor Pattern) - 访问者模式通过一个访问类来访问其他类中的数据。
· 备忘录模式 (Memento Pattern) - 回忆模式可以在不破坏对象封装性的前提下保存和恢复对象的内部状态。
· 责任链模式 (Chain of Responsibility) - 职责链模式将请求传递给一组对象,只有特定的对象才会处理该请求。这样就进一步削弱类之间的联系。
· 命令模式 (Command Pattern) - 命令模式将请求传递给特定的对象,这样客户端即使在不知道服务器端如何处理请求的情况下也可以发送请求。
· 模板模式 (Template Pattern) - 模板模式提供了对算法的抽象定义。
· 策略模式 (Strategy Pattern) - 策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。
· 状态模式 (State Pattern) - 状态模式将一个类实例的变量保存在独立的内存空间中。
· 迭代模式 (Iterator Pattern) - 迭代模式在不知道数据的内部表现形式的前提下,通过标准的接口来遍历数据集合中的数据。
· 解释器模式 (Interpreter Pattern) - 定义语言的文法,并且建立一个解释器来解释该语言中的句子.
  • src2.zip (38.3 KB)
  • 描述: 设计模式的练习代码
  • 下载次数: 522
   发表时间:2008-05-05  
挺有用的内容
0 请登录后投票
   发表时间:2008-05-05  
metaphy 写道


还有一个教训就是:尽量看英文资料,许多地方比中文资料写的要明白清楚。


这个问题碰到过,特别是使用JDK 的 API 的时候,有些东西的说明,看中文看不明白,看英文反而更容易理解一些。
0 请登录后投票
   发表时间:2008-05-06  
呵呵很有用,謝謝了!我還是第一次看見這么齊全
只聽說過工廠模式!
0 请登录后投票
   发表时间:2008-11-12  
以前曾一口气看完了GOF的23种设计模式。
现在都没有什么印象了。还是需要编码实现。
谢谢 博主的附件
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics