设计模式
创新设计模式
单例-确保仅创建一个类的实例,并提供对该对象的全局访问点。
Factory(Factory方法的简化版本)-创建对象而不将实例化逻辑暴露给客户端,并通过公共接口引用新创建的对象。
工厂方法-定义用于创建对象的接口,但让子类决定要实例化的类,并通过通用接口引用新创建的对象。
抽象工厂-提供用于创建相关对象族的接口,而无需显式指定其类。
构建器-定义用于创建对象的实例,但让子类决定实例化哪个类,并允许对构建过程进行更好的控制。
原型-指定要使用原型实例创建的对象的种类,并通过复制此原型来创建新对象。
行为设计模式
责任链-避免将请求的发送方附加到其接收方,从而使其他对象也可以处理请求。-对象成为链的一部分,并且请求从一个对象通过链发送到另一个,直到其中一个对象处理该请求。
命令-将请求封装在对象中,允许对具有不同请求的客户端进行参数化,并允许将请求保存在队列中。
解释器-给定一种语言,请定义其语法的表示形式,以及使用该表示形式来解释该语言中的句子的解释器/将域映射为语言,将语言映射为语法,并将语法映射为面向对象的分层设计
迭代器-提供一种在不暴露其基础表示的情况下顺序访问聚合对象的元素的方法。
介体-定义一个对象,该对象封装了一组对象之间的交互方式。介体通过防止对象之间显式地相互引用来促进松散耦合,并且它使您可以独立地更改它们之间的交互。
观察者-定义对象之间的一对多依赖关系,以便当一个对象更改状态时,将自动通知和更新其所有依赖关系。
策略-定义一系列算法,封装每个算法,并使它们可互换。策略使算法独立于使用该算法的客户端而变化。
模板方法-定义操作中算法的框架,将某些步骤推迟到子类中/模板方法可让子类重新定义算法的某些步骤,而无需让他们更改算法的结构。
访客(Visitor)-表示要在对象结构的元素上执行的操作/访客可以在不更改操作对象的元素类别的情况下定义新操作。
空对象-提供一个对象来代替缺少给定类型的对象。/空对象模式提供了智能的“不执行任何操作”行为,向其协作者隐藏了细节。
结构设计模式
适配器-将类的接口转换为客户端期望的另一个接口。/ Adapter允许类一起工作,否则由于接口不兼容而无法进行工作。
桥-将对象组合成树结构以表示部分整个层次结构。/ Composite使客户可以统一对待单个对象和对象组成。
复合-将对象组合成树形结构,以表示部分整个层次结构。/ Composite使客户可以统一对待单个对象和对象组成。
装饰器-将其他职责动态添加到对象。
Flyweight-使用共享来支持大量对象,这些对象的一部分内部状态是相同的,而另一部分状态可能会有所不同。
记忆-在不破坏封装的情况下捕获对象的内部状态,从而为在需要时将对象恢复为初始状态提供了一种手段。
代理-为对象提供“占位符”以控制对其的引用。