总览
创建型(5种)
工厂方法 Factory Method
定义一个创建类的接口 , 允许 在不确定一个类的具体实例的情况下创建 并使用它 ,让子类决定具体实例化的类型;
抽象工厂 Abstract Factory
定义一个接口 , 创建 一系列相关 或 互相依赖 的对象 , 而无需指定它们的具体类;
生成器模式 Builder
将类的构建过程 与 具体表现 分离 ,相同的过程可以创建不同的表示;
原型模式 Prototype
用原型实例 指定创建类的对象,并通过拷贝原型来获取新的对象;
单例模式 Singleton
保证一个类的实例 全局只有一个 , 并提供一个访问它的全局访问点 ;
结构型(7种)
适配器 Adapter
将一个类的接口转换成客户需要的另一个接口 , 使原来由于接口不能兼容的类在一起工作;
桥接 Bridge
将 抽象部分 和 实现部分 分离, 使两者可以独立的变化
组合模式 Composite
将对象组合成树形结构 以描述 部分和整体的 层次关系 , 使得操作单个对象 和 操作组合对象 具有一致性;
装饰者模式 Decorator
动态的给对象添加额外的职能;
外观模式 Facade
给一系列接口的交互过程提供统一的 接口 (访问形式) ;
享元模式 Flyweight
大量 细粒度 对象的共享技术;
代理模式 Proxy
为其他对象提供一种代理 , 以控制它的访问;
行为型(11种)
解释器 Interpretor
给定一个语言 定义其文法表示 , 并定义一个解释该语言的解释器 , 解释器通过该标识解释 语言中的句子 ;
模板方法 Template Method
定义一系列算法的骨架 , 并将其中一些特定的步骤延迟到子类去实现 ; 使得 子类可以在不改变算法的结构的前提下 , 重新定义具体步骤的实现方式;
责任链 Chain Of Reponsibility
避免请求者和接收者耦合在一起 , 定义多个对象都有能力处理请求 , 并将它们以链式结构连接 , 在链上传递请求 , 直到有一个对象处理请求为止;
命令模式 Commond
将一个请求封装成一个命令 , 使用不同的请求实现参数化 , 以支持 记录 / 撤回 / 重做 / 事务 / 队列处理
迭代器 Interator
提供一个方法顺序访问 一个组合对象的各个元素 , 而不暴露该对象的内部表示;
中介者 Mediator
定义一个中介对象 , 封装一系列对象间的交互 , 使各对象之间不需要显示的调用 ,松散耦合 , 可以独立的改变它们之间的交互 ;
备忘录 Memento
在不破坏封装性的前提下 , 捕获一个对象的内部状态 , 并在对象外保存其内部状态 , 以在合适的时机 恢复对象到保存的状态
观察者模式 Observer
定义对象间一对多的依赖关系 , 当被依赖对象状态发生变化时 , 所有依赖它的对象都能收到通知 并 自动更新 ;
状态模式 State
允许对象在内部状态改变时修改自身的行为 ;
策略模式 Strategy
定义一系列算法 , 并把它们一个个封装起来 , 可以互相替换;
访问者模式 Visitor
数据结构 和 数据访问 分离;