[Java] 设计模式
模式空间
创建型(Creational) | 结构型(Structual) | 行为型(Behavioral) | |
类 |
Factory Method |
Adaptor(类) |
Interpreter, Template Method |
对象 |
Abstract Factory, Prototype Singleton, Builder |
Adapter(对象), Bridge, Facade, Flyweight Composite, Decorator, Proxy |
Chain of Responsibility, Command Mediator, Memento, Observer, State Strategy, Visitor, Iterator |
创建型与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。
类模式处理类和子类之间的关系,这个关系通过继承建立,是静态的,在编译时刻便确定下来了;对象模式处理对象间的关系,这些关系在运行时可变化。
创建型类模式将对象的部分创建延迟到子类,而创建型对象模式将它延迟到另一个对象中。结构型类模式使用继承机制来组合,而结构型对象模式则描述对象的组装方法。行为类模式使用继承描述算法和控制流,而行为对象模式则描述一组对象怎样写作完成单个对象无法完成的任务。
创建型模式
Factory Method(工厂方法,对象创建型模式)
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到子类。
别名:虚构造器(Virtual Constructor)
作协:Creator依赖于它的子类来定义工厂方法,所以它返回一个适当的concreteProduct实例。
潜在缺点:客户可能仅仅为了特定的ConcreteProduct对象,就不得不创建Creator的子类。
builder(生成器,对象创建型模式)
Factory Method(工厂方法,对象创建型模式)
Prototype(原型,对象创建型模式)
Singleton(单件,对象创建型模式)
结构型模式
Adapter(适配器,类对象结构型模式)
Bridge(桥接,对象结构型模式)
Composite(组成,对象结构型模式)
Decorate(组成,对象结构型模式)
Facade(外观,对象结构型模式)
Flyweight(享元,对象结构型模式)
Proxy(代理,对象结构型模式)
结构性型讨论:
Adapter vs Bridge
Composite, Decorator & Proxy
行为模式
Chain of Responsibility ITY()
Command(命令,对象行为模式)
Interpreter(解释器,类行为模式)
Iterator(迭代器,对象行为模式)
Mediator(中介者,对象行为模式)
Memento(备忘录,对象行为模式)
Observer(观察者,对象行为模式)
State(状态,对象行为模式)
Strategy(策略,对象行为模式)
Template Method(模仿方法,类行为型模式)
Visitor(访问者,对象行为模式)