factory method |
定义一个用于创建对象的接口,由子类决定实例化哪一个类 |
abstract factory |
提供一个用于创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类 |
builder |
将复杂对象的构建与它的表示分离,使同一构建过程可以创建不同表示 |
prototype |
用原型实例指定创建对象的种类,通过复制原型构建新的对象 |
singleton |
保证一个类仅有一个实例,提供一个全局访问点访问它 |
adapter |
将一个类的接口转换成用户希望的另一个接口,解决接口不兼容问题 |
bridge |
抽象部分与实现部分分离,各部分独立变化 |
composite |
将对象组合成树型结构来表示整体与部分的层次结构 |
decorator |
给对象动态添加额外职责 |
facade |
为子系统接口提供一致界面。定义一个高层接口使子系统易用 |
flyweight |
使用共享技术支持大量细粒度对象 |
proxy |
其他对象使用代理控制本对象的访问 |
interpreter |
给定语言,定义文法和解释器 |
template method |
定义算法骨架,延迟步骤至子类。不改变算法结构即可重定义该算法的特定步骤 |
chain of responsibility |
将对象连成链,沿链传递请求直到被对象处理 |
command |
封装请求为对象,可用不同请求对客户进行参数化,记录请求日志,支持可撤销操作 |
iterator |
顺序访问聚合对象中的元素,不暴露对象的内部表示 |
mediator |
用中介对象封装一系列对象交互,使对象不能显式地相互引用 |
memento |
不破坏封装型,捕获对象内部状态并在对象之外保存此状态 |
observer |
定义对象间一对多的依赖关系,当一个对象改变,其他依赖对象被通知并自动更新 |
state |
允许对象在其内部状态改变时改变它的行为 |
strategy |
定义算法病封装使其可以互换 |
visitor |
不改变各元素的类 ,定义新操作 |