设计模式
iteye_3917
这个作者很懒,什么都没留下…
展开
-
装饰模式
装饰模式 Decorator,动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component是定义个对象的接口,可以给这些对象动态地添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Componen...原创 2012-04-27 16:59:58 · 73 阅读 · 0 评论 -
代理模式
代理模式 为其他对象提供一种代理以控制这个对象的访问。 Subject类,定义了RealSubject和Proxy的公用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。 public abstract class Subject { public abstract void request(); } RealSubject类,定义...原创 2012-04-28 10:53:49 · 72 阅读 · 0 评论 -
工厂方法模式
简单工厂 VS 工厂方法 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。例如计算器,让客户端不用管该用哪个类的实例,只需要把“+”给工厂,工厂自动就给出了相应的实例,客户端只要去做运算就可以了,不同的实力会实现不同的运算。但问题也就在这里,如果要加一个“求M的N次方”的功能,我们是第一需要给运...原创 2012-04-28 12:12:45 · 97 阅读 · 0 评论 -
原型模式
原型模式 Prototype,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 相关代码 public abstract class Prototype implements Cloneable { private String id; public Prototype(String id){ this.id = id; ...原创 2012-05-02 16:29:31 · 97 阅读 · 0 评论 -
模板方法模式
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法是的子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。模板方法模...原创 2012-05-02 16:52:18 · 84 阅读 · 0 评论 -
外观模式
外观模式Facade,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个几口使得这一子系统更加容易使用 何时使用外观模式 首先,再设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的曾与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,是的耦合大大降低。 ...原创 2012-05-02 17:36:42 · 99 阅读 · 0 评论 -
建造者模式
建造者模式 如果你需要将一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示的意图时,我们需要应用于一个设计模式,建造者(Builder)模式,又叫生成器模式。建造者模式可以将一个产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部对象。如果我们用了建造者模式,那么哟过户就只需要制定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。 ...原创 2012-05-08 18:03:28 · 96 阅读 · 0 评论 -
观察者模式Observer
观察者模式Observer又叫发布订阅(Publish/Subscribe)模式 观察者模式定义了一种一对多的依赖关系,让多个观察者对相同时间是某一个主题的对象。这个主体对象在状态发生变化时,会通知所有观察找对象,使它们能够自动更新。 Subject类,可翻译为主题或抽象统治者,一般用一个抽象类或者一个接口实现。他把所有观察者对象的引用保存在一个聚集里,每个主题都可以有任何数...原创 2012-05-09 16:31:27 · 113 阅读 · 0 评论