创建型 | 结构型 | 行为型 | |
类 | Factory Method | Adapter(类) | Interpreter Template Method |
对象 | Abstract Factory Builder Prototype Singleton |
Adapter(对象) Bridge Composite Decorator Facade Flyweight Proxy |
Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor |
创建型 | 结构型 | 行为型 | |
类 | 工厂方法模式 | 适配器(类)模式 | 解释器模式 模板方法模式 |
对象 | 抽象工厂模式 生成器模式 原型模式 单例模式 |
适配器(对象)模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 |
责任链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
创建型(5种)
1.他们都将关于该系统使用哪些具体的类的信息封转起来。
2.他们隐藏这些类的实例是如何被创建和放在一起的。整个系统关于这些对象所知道的是由抽象类所定义的接口。
创建型模式在什么被创建,谁创建它,它是怎样被创建的,以及何时创建这些方面给予很大的灵活性。
Abstract Factory(抽象工厂)
1.意图
提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。
2.结构
抽象工厂模式结构图
- AbstractFactory 声明一个创建抽象产品对象的操作接口。
- ConcreteFactory实现创建具体产品对象的操作。
- AbstractProduct为一类产品对象声明一个接口。
- ConcreteProduct定义一个将被相应的具体工厂创建的产品对象,实现AbstractProduct接口。
- Client仅使用由AbstractFactory和AbstractProduct类声明的接口。
3.适用性
- 一个系统要独立于它的产品的创建、组合和表示时。
- 一个系统要由多个产品系列中的一个来配置时。
- 当要强调一系列相关的产品对象的设计以便进行联合使用时。
- 当提供一个产品类库,只想显示他们的接口而不是实现时。
Builder(生成器)
1.意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 。
2.结构
生成器模式结构图
- Builder为创建一个Product对象的各个部件指定抽象接口。
- ConcreteBuilder实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,提供一个检索产品的接口。
- Director构造一个使用Builder接口的对象。
- Product表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。包含定义组成组件的类,包括将这些组件装配成最终产品的接口。
3.适用性
- 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
- 当构造工程必须允许被构造的对象有不同的表示时。
Factory Method(工厂方法)
1.意图
定义一个用于创建对象的接口