
设计模式
zhangtb7881
这个作者很懒,什么都没留下…
展开
-
Singleton模式
Singleton模式主要作用是保证在 Java应用程序中,一个类 Class只有一个实例存在。有两种实现方式:1.private构造方法.2.synchronized获取实例方法.示例代码如下 SingletonA.javapackage com.gary.designpattern.singleton;/** * Singleton模式主要作用是保证在 ...2011-02-09 19:17:35 · 89 阅读 · 0 评论 -
Mediator模式
用一个中介对象来封装一系列的对象交互,使各对象不需要显示地相互调用 Mediator.javapackage com.gary.designpattern.mediator;/** * 中介者 * @author gary * */public interface Mediator { public void send(String message...2011-02-21 18:04:24 · 158 阅读 · 0 评论 -
Chain Of Responsibility模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,沿着这条链传递该请求,直到有一个对象处理它为止 Handler.javapackage com.gary.designpattern.cor;/** * 处理请求的接口 * @author gary * */public abstract class Hand...2011-02-21 18:00:48 · 110 阅读 · 0 评论 -
Composite模式
将对象组合成树形结构以表示 部分-整体 的层次结构,使用户对单个对象和组合对象的使用具有一致性适用场合:忽略组合对象与单个对象的不同,统一使用组合结构中的所有对象 Company.javapackage com.gary.designpattern.composite;/** * 公司类 * @author gary * */public abstract ...2011-02-20 17:15:54 · 117 阅读 · 0 评论 -
Memento模式
不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后可将该对象恢复到原先保存的状态适用场合:功能较复杂,但需要维护或记录属性历史,或需要保存的属性只是众多属性的一小部分 Originator.javapackage com.gary.designpattern.memento;/** * 发起人 * @author gary * *...2011-02-18 20:44:13 · 102 阅读 · 0 评论 -
State模式
不同状态有不同的行为适用场合:控制一个对象状态转换的条件表达式过于复杂时 State.javapackage com.gary.designpattern.state;/** * 抽象状态 * @author gary * */public abstract class State { public abstract void greeting(Gree...2011-02-18 12:59:45 · 134 阅读 · 0 评论 -
Observer模式
定义了一种一对多的依赖关系,让多个观察者对象同时去监听某一主题对象,这个主题对象发生变化时,会通知所有的观察者对象,使它们自动更新自己适用场合:一个对象的改变需要同时改变其它对象,且不知多少个有待改变 Hello.javapackage com.gary.designpattern.observer;import java.util.Observable;/** *...2011-02-17 22:16:04 · 102 阅读 · 0 评论 -
Template模式
通过使用抽象类等,定义一个算法骨架,而将一些步骤延迟到子类中,使子类可以不改变一个算法的结构即可重新定义该算法的特定步骤.适用场合:要完成某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同. Template.javapackage com.gary.designpattern.template;/** * 抽象模板 * @author ...2011-02-17 18:40:11 · 98 阅读 · 0 评论 -
Decorator模式
动态给一个对象添加一些额外的职责,即为已有功能动态添加更多功能 SayHello.javapackage com.gary.designpattern.decorator;/** * SayHello * @author gary * */public class SayHello { public void sayHello(){ System....2011-02-14 10:56:32 · 115 阅读 · 0 评论 -
Strategy模式
定义了算法家族,分别封装起来,让它们之间可以相互替代,不影响调用 Strategy.javapackage com.gary.designpattern.strategy;public interface Strategy { public void hello();} StrategyImplA.javapackage com.gary.designp...2011-02-13 00:03:24 · 84 阅读 · 0 评论 -
Facade模式
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更容易使用.很常用,较好体现了依赖倒转原则和迪米特法则思想. Facade.javapackage com.gary.designpattern.facade;/** * Facade类,需要了解子功能,并组合 * @author gary * */public clas...2011-02-12 12:30:50 · 112 阅读 · 0 评论 -
Prototype模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。Prototype.javapackage com.gary.designpattern.prototype;/...2011-02-11 21:36:26 · 79 阅读 · 0 评论 -
Proxy模式
为其他对象提供一种代理以控制对这个对象的访问等Service.javapackage com.gary.designpattern.proxy;/** * 定义公用接口,这样使用RealService的地方都可以使用Proxy * @author gary * */public interface Service { public void sayHello...2011-02-11 13:04:04 · 130 阅读 · 0 评论 -
Adapter模式
将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能在一起工作的类可以一起工作Adaptee.javapackage com.gary.designpattern.adapter;/** * 需要适配的目标 * @author gary * */public interface Adaptee { public void doSomethi...2011-02-11 09:46:59 · 80 阅读 · 0 评论 -
Builder模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,隐藏具体构建过程. Builder.javapackage com.gary.designpattern.builder;/** * 抽出整个build过程 * @author gary * */public interface Builder { public void bui...2011-02-10 16:49:05 · 90 阅读 · 0 评论 -
Factory模式
提供创建对象的接口。可以做一些初始化工作等,尤其是在对象的关系比较复杂的情况下,好处更加明显。工厂模式一般与单例模式配合使用。工厂模式分为两种:工厂方法(Factory Method),抽象工厂(Abstract Factory)。 工厂方法FactoryMethod.javapackage com.gary.designpattern.factory.factorym...2011-02-09 20:06:43 · 119 阅读 · 0 评论 -
Interpreter模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子AbstractExpression.javapackage com.gary.designpattern.interpreter;/** * 解释操作接口 * @author gary * */public interface AbstractExpression {...2011-02-21 18:07:50 · 157 阅读 · 0 评论