
设计模式
文章平均质量分 77
iamxi
这个作者很懒,什么都没留下…
展开
-
学习:抽象工厂(Abstract Factory)
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 。 别名: Kit 结构: 代码示例: AbstractFactory类 public abstract class AbstractFactory { public abstract AbstractProductA createProductA(); pub...原创 2012-08-13 13:59:34 · 120 阅读 · 0 评论 -
学习:生成器(Builder)
用来构建复杂的实例,java的StringBuilder就是一个Builder模式的例子。 意图: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 结构: 代码示例: Builder类 public abstract class Builder { protected String product; public...原创 2012-08-13 21:23:13 · 114 阅读 · 0 评论 -
学习:工厂方法(Factory Method)
意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的实例化延迟到其子类。 别名: 虚构造器(Virtual Constructor) 结构: •Product — 定义工厂方法所创建的对象的接口。 • ConcreteProduct — 实现Productt接口。 • Creator — 声明工...原创 2012-08-15 13:27:07 · 118 阅读 · 0 评论 -
学习:原型(Prototype)
很少见到,我都没遇到过,或是遇到过也没注意。 意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 结构: Prototype ——声明一个克隆自身的接口 ConcretePrototype ——实现一个克隆自身的操作 协作: 客户请求一个原型克隆自身。 示例代码: public abstract...原创 2012-08-19 21:51:28 · 266 阅读 · 0 评论 -
学习:单件(Singleton)
意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 结构图: 代码示例: public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singl...原创 2012-08-19 22:14:19 · 125 阅读 · 0 评论 -
学习:创建型模式
创建型模式: 用于创建对象的模式。 用一个系统创建的那些对象的类对系统进行参数化有两种常用方法: 一、生成创建对象的类的子类;这对应于使用 Factory Method模式。这种方法的主要缺点是,仅为了改变产品类,就可能需要创建一个新的子类。这样的改变可能是级联的。 二、对系统进行参数化的方法更多的依赖于对象复合:定义一个对象负责明确产品对象的类,并将它作为该系统的参数。这...原创 2012-08-19 22:58:42 · 118 阅读 · 0 评论 -
学习:适配器(Adapter)
如果你知道电源适配器的作用,就应该很容易理解这个模式。 意图: 将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 别名: 包装器 Wrapper 结构: 类适配器 public interface Target { public void request(); } ...原创 2012-08-21 14:17:27 · 354 阅读 · 0 评论 -
学习:桥接模式(Bridge)
意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 别名 Handle/Body 结构 参与者 • Abstraction — 定义抽象类的接口。 — 维护一个指向I m p l e m e n t o r类型对象的指针。 • RefinedAbstraction — 扩充由Abstraction定义的接口。 • Implementor ...原创 2012-08-31 21:43:20 · 191 阅读 · 0 评论 -
原型工厂模式
顾名思义就是原型模式和工厂模式的结合。在GOF的书里面,抽象工厂那节中对这个有描述,不过内容很少,所以看的时候也没注意到。 说个实际的问题:系统需要向用户发送短信,但是根据场景的不同,发送的短信格式也不同,比如重置密码和发送临时验证码的短信格式就有区别,而之前的开发人员使用了策略模式,每个内容都有一个类,现在也不方便去改动这些。但是随需求的增加,发送的场景在不断增加,策略+工...原创 2012-09-03 11:15:10 · 383 阅读 · 0 评论