随笔分类 -  设计模式

摘要:代理指向真正的实体,完成相应的任务。 1 #ifndef Proxy_H_H 2 #define Proxy_H_H 3 4 class Base{ 5 public: 6 virtual void show() = 0; 7 }; 8 9 class Real : public Bas... 阅读全文
posted @ 2015-06-19 20:48 丛林小阁楼 阅读(162) 评论(0) 推荐(0) 编辑
摘要:把公用的放到基类,把不同的放到子类中实现,实现功能的共享。 1 #ifndef Template_H_H 2 #define Template_H_H 3 4 #include 5 #include 6 using namespace std; 7 8 class Base{ 9 publi... 阅读全文
posted @ 2015-06-19 20:37 丛林小阁楼 阅读(159) 评论(0) 推荐(0) 编辑
摘要:不同的解释器有不同的解释规则,添加所有的解释器后,然后一一解释。 阅读全文
posted @ 2015-06-19 20:29 丛林小阁楼 阅读(101) 评论(0) 推荐(0) 编辑
摘要:抽象工厂中,不同的对象通过的不同的输入符号来判断。当要添加新的类时,需要修改工厂类,不利于扩展。工厂模式中,不同的类由不同的工厂创建出来,相互之间不受影响。#ifndef Factory_H_H#define Factory_H_H#include #include using namespace ... 阅读全文
posted @ 2015-06-19 20:22 丛林小阁楼 阅读(113) 评论(0) 推荐(0) 编辑
摘要:外观模式中提供一个统一的接口,然后对外观操作,内部成员可以不相同。 1 #ifndef Facade_H_H 2 #define Facade_H_H 3 4 class A{ 5 public: 6 void showA(){ 7 cout showA();35 ... 阅读全文
posted @ 2015-06-19 20:05 丛林小阁楼 阅读(132) 评论(0) 推荐(0) 编辑
摘要:适配器模式可以使接口不相同的几个对象通过适配来统一接口。Target与Adaptee各自拥有自己的方法,但接口不同,可以通过Adapter进行统一。 1 #ifndef Adapter_H_H 2 #define Adapter_H_H 3 4 #include 5 using namespac... 阅读全文
posted @ 2014-09-21 14:40 丛林小阁楼 阅读(134) 评论(0) 推荐(0) 编辑
摘要:访问者模式中,有一个数据体,添加了各个访问对象。这些访问对象在不同的状态时,会有不同的反应。这种模式中,对象与状态相分离,互不干扰。Visitor.h内容 1 #ifndef Visitor_H_H 2 #define Visitor_H_H 3 4 5 #include 6 #i... 阅读全文
posted @ 2014-09-20 16:27 丛林小阁楼 阅读(225) 评论(0) 推荐(0) 编辑
摘要:中介者模式中,个体与个体之间不需要发生直接关联,而是只需要与中介者进行交互,并由中介完成一系列任务。Mediator.h内容 1 #ifndef Mediator_H_H 2 #define Mediator_H_H 3 4 #include 5 using namespace std; 6 ... 阅读全文
posted @ 2014-09-20 15:27 丛林小阁楼 阅读(171) 评论(0) 推荐(0) 编辑
摘要:职责链模式中,对于某项事件,设置一个直接的处理者即可。如果直接处理者不能处理,则交给其上一级处理者,一直到该事件处理完毕为止。职责链模式好处在于,只需要设置事件的相关级别、属性,并只需要交给一个相关的处理者即可。Reschain.h内容 1 #ifndef Reschain_H_H 2 #defin... 阅读全文
posted @ 2014-09-20 14:16 丛林小阁楼 阅读(147) 评论(0) 推荐(0) 编辑
摘要:命令模式中,命令抽象成一个借口,包含一个命令的执行者,能够派生出各种不同的命令。并有一个命令的管理者,能够添加各种命令,添加完后,在必要的时候通知执行者执行这些命令。Command.h内容 1 #ifndef Command_H_H 2 #define Command_H_H 3 4 #inclu... 阅读全文
posted @ 2014-09-20 11:32 丛林小阁楼 阅读(151) 评论(0) 推荐(0) 编辑
摘要:组合模式中,整体和部分可以同等看待,基类设定一个节点接口,可以派生出叶子节点和非叶子节点。叶子节点不能添加节点,非叶子节点可以添加,组成一个典型的树形结构。组合模式在游戏引擎的渲染树中应用很广泛。Composite.h内容 1 #ifndef Composite_H_H 2 #define Comp... 阅读全文
posted @ 2014-09-16 22:03 丛林小阁楼 阅读(133) 评论(0) 推荐(0) 编辑
摘要:建造者模式定义一个具体的物体,是各种属性的集合。要创建该物体时,可以构建一个构造器,该构造器包含特定的构造方式,但是只提供一个接口,具体构造细节放在派生类中实现。Builder.h内容 1 #ifndef Builder_H_H 2 #define Builder_H_H 3 4 #inc... 阅读全文
posted @ 2014-09-16 21:06 丛林小阁楼 阅读(182) 评论(0) 推荐(0) 编辑
摘要:模板模式特点:提取相同的特性放在基类中,而将不同的特性作为一个借口抽象出来,放到派生类中进行具体实现。Template.h内容 1 #ifndef Template_H_H 2 #define Template_H_H 3 4 #include 5 #include 6 using names... 阅读全文
posted @ 2014-09-16 20:02 丛林小阁楼 阅读(130) 评论(0) 推荐(0) 编辑
摘要:原型模式主要指通过基类的指针能够动态创建出当前实际类型的实例,可以快速复制出当前的一个副本。Prototype.h内容 1 #ifndef Prototype_H_H 2 #define Prototype_H_H 3 4 #include 5 using namespace std; 6 7... 阅读全文
posted @ 2014-09-16 19:32 丛林小阁楼 阅读(134) 评论(0) 推荐(0) 编辑
摘要:观察这模式中,有一个观察者监听一个事件,当事件发生时,向所有被通知者发送相应的消息和命令。例如,秘书作为观察者,监听老板的动作。当老板回来时,向看电影、睡觉的员工发送消息,让他们停止并开始工作。Observation.h内容 1 #ifndef Observation_H_H 2 #define O... 阅读全文
posted @ 2014-09-16 18:34 丛林小阁楼 阅读(165) 评论(0) 推荐(0) 编辑
摘要:当物体有几种不同的属性时,这时类的继承就会变的多样。例如,一款手机按类型可分为功能机和智能机,按颜色可分为黑色、白色、红色等,按品牌可分为苹果、三星、小米等。当属性越多,则需要创建的类就更多,使用桥接模式能够大大降低问题的复杂性,并且能够极大程度降低耦合。示例代码:Bridge.h内容 1 #ifn... 阅读全文
posted @ 2014-09-16 12:58 丛林小阁楼 阅读(202) 评论(0) 推荐(0) 编辑
摘要:单例模式是一个比较简单的设计模式,只产生一个具体的对象,一般用于全局变量,保证整个系统所使用的变量是唯一的。单例模式中,一般将构造函数和析构函数都设置为私有的,获取和释放时采用静态函数实现。具体实例:SingleInstance.h内容 1 #ifndef SingleInstance_H_H 2 ... 阅读全文
posted @ 2014-09-16 11:41 丛林小阁楼 阅读(151) 评论(0) 推荐(0) 编辑
摘要:工厂模式是针对不同的类型创建不同的对象,当所需要的对象没有变,而只是对它们进行的操作和算法不同时,可使用策略模式。策略模式创建不同的算法类,并返回一个基类算法对象的指针,并对它进行相关的计算或操作。实例代码Strategy.h内容 1 #ifndef Strategy_H_H 2 #define S... 阅读全文
posted @ 2014-09-16 11:18 丛林小阁楼 阅读(183) 评论(0) 推荐(0) 编辑
摘要:抽象工厂通过一个工厂产生各种不同的实际对象,并返回基类的指针,通过基类的指针来统一对对象进行操作,增强了其灵活性,降低了耦合,便于后续更新和维护。实例代码:AbstractFactory.h内容 1 #ifndef AbstractFactory_H_H 2 #define AbstractFact... 阅读全文
posted @ 2014-09-16 10:58 丛林小阁楼 阅读(160) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示