七、C++设计模式

23种设计模式,以下底色的是个人认为常用的,供参考。

设计模式

释义

模板设计模式

类似C中的回调函数,主架构已经搭建完成,根据派生类不同执行不同的虚函数。

策略设计模式 和状态模式很像,如果一个程序中使用了if elseif else或switch case等,如果后面还是要增加的情况下,用策略模式会比较好。
观察者模式 将所有的观察者封装到一个vector或list中,当一个发生变化的时候,直接可以通知其他的对象进行变化。
装饰模式 主要是通过继承方式导致派生类数量急剧上升时,应该使用装饰模式,重新设计一个类,让其他类继承此类。
桥接模式 不要将不相关的东西封装到一个类里,应该分开,然后通过虚函数动态绑定,组合两个类的方式实现具体的功能。
工厂方法模式 工厂模式
抽象工厂模式 工厂模式
原型模式 和备忘录模式很像,如果想保存对象的某些特定状态下的属性,使用此模式备忘。
builder 构建器 如果一个类的构造就很复杂,则使用构造器模式,单独为类的构造进行创建类。
Singleton单例模式 通过Static成员变量和Static成员函数,构造只有一个实例的模式。
flyweight享元模式 创建对象池,如果要生成一个对象,先看对象池中是否存在,不存在则再创建,一般和单例模式一起使用。
Facede门面模式 和中介者模式很像,中介者是系统内不同对象之间的隔离;门面模式是系统内和系统外,隔离,类似RTE的感觉。
proxy代理模式 一个对象没有办法实现某些特定功能,需要代理时使用。
adapter适配器模式 新老接口不适配时使用。
Mediator中介者模式 和门面模式很像
State状态模式 和策略模式很像
Memento备忘录设计模式 和原型模式很像
Composite组合模式 构成树形结构
Iterator迭代器模式 构造了一种迭代器
Chain of Responsibility职责链模式 将多个对象封装到List中,从根节点开始一步步的向后移动,直到找到可处理此问题的对象。
Command命令模式 将行为封装成对象,并对对象进行组合等操作,实现功能组(复制,记录,撤销,重做等),类似函数对象。
Visitor访问器模式 主要适用于父类本身的操作会经常变化,即今天增加一个新的操作,明天可能又增加一个新的操作。但这个父类有多少子类,是已经确定了。主要是为了防止增加新的操作,而导致的所有子类均需要修改的问题。
Interpreter解析器模式 将“a+b-c+d”这样的文法,转化为真正的数学运算;再如:将“伍仟陆佰捌拾柒”这种大写的文法,转化为真正的数字等。

你可能感兴趣的:(语言篇,#,C++语言,c++)