Gang Of Four的23中设计模式
标签(空格分隔): 设计模式html
1. 根据目的来进行划分
根据目的进行划分能够分为建立型模式, 结构型模式和行为模式三种.算法
1.1 建立型模式
怎样建立对象, 主要特色是 将对象的建立和使用分离, GoF中提供了单例, 原型, 工厂方法, 抽象工厂, 建造者等5中建立型模式.设计模式
1.2 结构性模式
用于描述如何将类或者对象按照某种布局组成更大的结构, GoF提供了代理, 适配器, 桥接, 外观, 享元, 组合等6中结构性模式.布局
1.3 行为模式
用于描述类或对象之间如何经过写做共同完成单个对象没法完成的任务, 以及怎样分配职责. GoF中提供了模板方法, 策略, 命令, 职责链, 状态, 观察者, 中介者, 迭代者, 访问者, 备忘录, 解释器.设计
GoF的23中设计模式的功能(只列出常见的).
- 单例(Singleton)模式: 某个类只能生成一个实例, 该类提供了一个全局访问点供外部获取该实例拓展是有限多例模式.
单例模式代码
- 原型(Prototype)模式: 将一个对象做为原型, 经过对其进行复制而克隆出多个和原型相似的新实例.
原型模式代码
- 工厂(Factory)方法: 定义一个用于建立产品的接口, 由子类决定生产什么产品.
工厂设计模式
抽象工厂(AbstractFactory)模式: 提供一个建立产品族的接口, 其每一个子类能够生产一系列相关的产品.代理
- 代理(Proxy)模式: 为某对象提供一种代理以控制对该对象的访问, 即客户端经过代理间接的访问该对象, 从而限制, 加强或者修改该对象的一些特性.
代理模式
- 适配器(Adapter)模式: 将一个类的接口转换成客户但愿的另外一个接口, 使得本来因为接口不兼容而不能一块儿工做的哪些类一块儿工做.
适配器模式
- 桥接(Bridge)模式: 将抽象和实现分离, 它他们能够独立变化, 他们使用组合关系替代竭诚关系来实现, 从而下降了抽象和实现这两个可变维度的耦合度.
- 装饰(Decorator)模式: 动态的给对象增长一些功能.
- 享元(Flyweight)模式: 运行共享技术来有效的支持大量细粒度对象的复用.
享元模式
- 策略(Strategy)模式: 定义了一些列的算法, 而且将每一个算法封装起来, 使他们能够相互替换, 且算法的改变不会影响使用算法的客户.
策略模式
模板方法(TemplateMethod)模式:定义一个操做中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类能够不改变该算法结构的状况下重定义该算法的某些特定步骤。
模板方法htm