(一)创建型模式
以建房为例,房子是想要的目标,工程队就是造房子的工厂。

1.抽象工厂模式
(1)被抽象的是工厂。客户并不会直接调用房子构造,而是调用工厂,从而通过不同的工厂得到不同的房子。
2.工厂方法模式
(1)与抽象工厂类似,不同之处就在于不再搞不同的工厂,而是通过在一个工厂里提供不同的方法实现。
3.生成器模式
(1)给客户不再提供完整的房子,而是提供用于构造门、窗等的生成器,客户用生成器自己组建房子。

(二)结构性模式
1.适配器模式
简单说就是有个A类,但是出于某些原因,客户无法直接调用A类或者A类无法完全满足客户需求,于是写个B类,B类中引用A类。实现方法不一。
2.桥接模式
A类提供统一接口,但是A类不具体实现,由B类、C类等具体实现,A类维护一个它们的指针。
3.组合模式
不用特地研究,因为只要用到两个以上类组建对象,就可以认为是组合模式。
4.装饰模式
不用特地研究,类继承都可以看做是装饰模式,太普遍了。(子类扩展增加自己的方法)。
5.门面模式
可以看做是用一扇门挡住内部实现,比如有A、B、C等等一大堆类,统一提供一个X类,由X类引用它们,客户只用X类。貌似实际中很少会用到,太不现实了。
6.代理模式
目的跟适配器模式类似。实现方法不同而已。用处不大。

(三)行为模式
1.职责链模式
就是类似MFC里面,子类执行、父类再执行、祖父类再执行。。。
2.命令模式
命令也就是动作,凡是有发起者、命令、接收者三要素的,都可以看做是命令模式。
3.迭代器模式
典型的就是STL中的迭代器。说白了就是提供接口访问类内部数据,但是隐藏类内部数据结构。这个往大了说所有类不都这样嘛,没什么意义。
4.中介者模式
存在ABC等很多类,它们之间会互相引用,但是为了松耦合,不让它们之间直接互相引用,而是提供另外的类再封装一层实现它们间的引用。这在现实中几乎不可能有时间这么做。
5.观察者模式
一个对象状态变化,多个观察者都响应。MFC中的消息处理。
6.策略模式
类实现一个功能可以提供不同的策略,说白了就是不同的方法。(子类为同一种方法提供不同的实现)。
7.模板模式
典型的就是C++模板。
8.访问者模式
为访问者提供服务,比如说家里来客人了,有各种吃的,你不是让客人自己一个一个直接去拿,而是拿个果盘放好各种吃的,把果盘提供给客人。说白了也是类提供方法。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部