设计模式-C++

设计模式-C++,第1张

设计模式-C++

创建型模式主要解决对象创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。

创建型模式

原理

单例模式

用来创建全局唯一的对象,一个类只允许创建一个对象(或者叫实例)

工厂模式

用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象

建造者模式

用来创建复杂对象,可以通过设置不同的可选参数,“定制化”地创建不同的对象

原型模式

创建成本比较大的对象,利用对已有对象进行复制的方式进行创建,以达到节省创建时间的目的

结构型模式主要总结了一些类或对象组合在一起的经典结构

结构型模式

原理

代理模式

在不改变原始类(或叫被代理类)的情况下,通过引入代理类来给原始类附加功能。主要目的是控制访问,而非加强功能

桥接模式

将接口部分和实现部分分离,从而让它们可以较为容易、也相对独立地加以改变

装饰器模式

在不改变原始类接口的情况下,对原始类功能进行增强,并且支持多个装饰器的嵌套使用

适配器模式

一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口

门面模式

为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。解决接口易用性问题、性能问题和分布式事务问题

组合模式

将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。

享元模式

运用共享技术有效地支持大量细粒度的对象

行为型设计模式主要解决的就是“类或对象之间的交互”问题

行为型模式

原理

观察者模式

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己

模板模式

通过把不变行为搬移到基类,去除之类中的重复代码来体现它的优势

策略模式

将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现

职责链模式

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

状态模式

当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。

迭代器模式

提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

访问者模式

封装一些作用于某种数据结构的各元素的 *** 作,它可以在不改变数据结构的前提下定义作用于这些元素的新的 *** 作

备忘录模式

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。

命令模式

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的 *** 作

解释器模式

解释器模式为某个语言定义它的语法(或者叫文法)表示,并定义一个解释器用来处理这个语法。只在一些特定的领域会被用到,比如编译器、规则引擎、正则表达式

中介模式

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存