创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。
创建型模式
原理
单例模式
用来创建全局唯一的对象,一个类只允许创建一个对象(或者叫实例)
工厂模式
用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象
建造者模式
用来创建复杂对象,可以通过设置不同的可选参数,“定制化”地创建不同的对象
原型模式
创建成本比较大的对象,利用对已有对象进行复制的方式进行创建,以达到节省创建时间的目的
结构型模式主要总结了一些类或对象组合在一起的经典结构
结构型模式
原理
代理模式
在不改变原始类(或叫被代理类)的情况下,通过引入代理类来给原始类附加功能。主要目的是控制访问,而非加强功能
桥接模式
将接口部分和实现部分分离,从而让它们可以较为容易、也相对独立地加以改变
装饰器模式
在不改变原始类接口的情况下,对原始类功能进行增强,并且支持多个装饰器的嵌套使用
适配器模式
一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口
门面模式
为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。解决接口易用性问题、性能问题和分布式事务问题
组合模式
将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。
享元模式
运用共享技术有效地支持大量细粒度的对象
行为型设计模式主要解决的就是“类或对象之间的交互”问题
行为型模式
原理
观察者模式
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己
模板模式
通过把不变行为搬移到基类,去除之类中的重复代码来体现它的优势
策略模式
将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现
职责链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
状态模式
当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。
迭代器模式
提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。
访问者模式
封装一些作用于某种数据结构的各元素的 *** 作,它可以在不改变数据结构的前提下定义作用于这些元素的新的 *** 作
备忘录模式
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。
命令模式
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的 *** 作
解释器模式
解释器模式为某个语言定义它的语法(或者叫文法)表示,并定义一个解释器用来处理这个语法。只在一些特定的领域会被用到,比如编译器、规则引擎、正则表达式
中介模式
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)