C++之模式
zl908760230
遇到问题首先得学会自己找答案!
展开
-
(1)单例模式
一个类只生成唯一的实例对象。 实现步骤: 1)构造函数私有化 2)提供一个全局的静态方法(全局访问点) 3)在类中定义一个静态指针,指向本类的变量的静态变量指针 懒汉式: #include using namespace std; #define NULL 0 // 单例模式---懒汉式 class singelTon { private: singelTon() {原创 2017-04-01 17:12:42 · 229 阅读 · 0 评论 -
(2)简单工厂模式
#include using namespace std; class Car { public: virtual void get() = 0; }; class BYD:public Car { public: void get() override { cout << "比亚迪" << endl; } }; class VW :public Car { public: void原创 2017-04-02 11:19:52 · 205 阅读 · 0 评论 -
(3)工厂模式
#include using namespace std; class Car { public: virtual void get() = 0; }; class BYD:public Car { public: void get() override { cout << "比亚迪" << endl; } }; class VW :public Car { public: void原创 2017-04-02 12:15:54 · 197 阅读 · 0 评论 -
(5)原型模式prototype
原型模式是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 适用情况: 一个复杂对象,具有自我复制功能,统一一套接口原创 2017-04-12 11:51:06 · 248 阅读 · 0 评论 -
(6)代理模式
指具有与代理元具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。 #include using namespace std; class subject { public: virtual void sell() = 0; }; class shop :public subject { public : void s原创 2017-04-12 14:08:12 · 393 阅读 · 0 评论 -
(7)装饰模式
又叫作包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。 装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。 适用于 动态的给一个对象添加一些额外的职责。增加功能来说,此模式比生成子类更为灵活 #include using namespace std; cl原创 2017-04-12 14:32:56 · 197 阅读 · 0 评论 -
(8)适配器模式
通过适配器模式可以改变已有类(或外部类)的接口形式。 适用于: 讲一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 #include using namespace std; class current18v { public: virtual void use18v() = 0; }; class current220v原创 2017-04-12 15:19:56 · 188 阅读 · 0 评论 -
(9)桥接模式
基于类的最小设计原则,通过使用封装以及继承等行为来让不同的类承担不同的责任,它的特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 #include using namespace std; class Engine { public : virtual void InstallEngine() = 0; }; class engine44 :public En原创 2017-04-12 18:33:28 · 210 阅读 · 0 评论 -
(4)建造者模式
建造者模式的意图是将一个复杂的构建与祁表示相分离,使得同样的构建过程可以创建不同的表示。 适用情况: 一个对象的构建比较复杂,将一个对象的构建和对象的表示进行分离。 代码: #include #include using namespace std; class House { public: void setDoor(string door ) { m_door =原创 2017-04-03 22:11:49 · 194 阅读 · 0 评论