1:单例模式:首先能想到的,最为重要的一个设计模式。确保一个类仅有一个实例,提供一个
全局访问点,惯用做法是屏蔽构造数访问(设为private),通过static 权限达到间接访问调用的目的。
2:工厂模式:创建对象的方法,简化对象生成,使用者只需调用就行了,屏蔽了创建底层细节
3:观察者模式,通常的场景类似于安插一个眼线,一旦目标有变,随时都能掌握,通常应用于回调和事件监听
4:策略模式,为简单好记,可以为是一种switch()...的多个分支,每一个分支就是一种解决问题的策略。
5:适配器模式:就像充电器,怎么给手充电?一个是家用电220V ,一个手机用电,这就需要适配器来进行,即实现接口转换
6:装饰器模式:
原来对象没有这个功能,现有类的功能冗繁,再在这个cpp里添加,维护起来十分麻烦,为不改变现有类的框架,对它进行扩展功能,就叫装饰。
7:迭代器模式:顺序访问聚合对象中的各个元素,而不需要暴露内部细节,就要用到迭代器模式
,就像遍历。
8:代理模式:A对象不能直接访问B对象,怎么办?此时就需要代理上场!
9:命令模式:将一个请求或操作封装到一个对象,适用于需要记录、回放或撤销操作的情况
为辅助理解,可以这样记:
对于单个类:
工厂模式 :对象创建简化
单例模式-唯一性,全局性
功能扩展?:装饰模式
命令干活:命令模式
对象代理控制?代理模式
对象表现如何?观察者模式
多个对象解决问题:
- 策略模式:功能切换
- 适配器模式 :对象转换
-对象遍历:迭代器模式
最后还有一些设计模式,比如 享元模式(分离对象共享与独特部分),桥接模式(抽象与实现分离)等等。