
C++ 设计模式
啊罗罗
这个作者很懒,什么都没留下…
展开
-
C++中单例模式的总结——operater new & private construct
#include <iostream> //单例模式 /* C++中的单例模式通常是通过对构造函数设置为private来实现 */ using namespace std; class world { world() { //私有的构造函数,只能由类的成员函数来获取实例 } public: static world *g...原创 2020-03-25 14:44:24 · 238 阅读 · 0 评论 -
C++设计模式——如何控制对象的创建方式【堆or栈】以及引出——单例模式Singleton
#include<iostream> using namespace std; int main(){ /* 控制对象的创建方式 */ //1.禁止在栈上创建对象 class A{ private: A(){} ~A(){} public: static A* getIns...原创 2019-11-27 21:16:24 · 145 阅读 · 0 评论 -
C++设计模式——4.bridge 桥模式
桥模式也是一个非常巧妙的关系,https://www.cnblogs.com/xiaobingqianrui/p/9013692.html这篇文章讲的比较好。 他把a*b的关系变成了a+b,有效的简化了类的数量,使用类的组合而不是继承来优化代码。 下面的代码中,我举了一个不同颜色画笔的例子来解释,还是非常好懂的 /* b.hpp */ #include<string> ...原创 2019-11-13 21:04:47 · 231 阅读 · 0 评论 -
C++设计模式——3.decorator 装饰者
decorator 装饰者,我觉得是一个非常巧妙的设计模式,他能用所谓”装饰链“来对一个已有的对象进行拓展,而不修改原来的代码 /* d.hpp */ #include<iostream> class Object{ public: virtual ~Object(){} virtual void attach()=0; //接口,设置一个父...原创 2019-11-13 21:01:44 · 122 阅读 · 0 评论 -
C++设计模式 —— 2.observer 观察者模式
下面的代码实现了一个observer模式,添加observer以后可以很方便的跟踪变量的改变 /* obs.hpp 实现observer类 抽象出一个接口 */ #include<list> class observer{ public: //观察者接口,我们只用定义一个我们想要用户实现的虚函数 //在实现了下面的publisher以后,...原创 2019-11-13 20:59:46 · 196 阅读 · 0 评论 -
C++设计模式 —— 1. strategy 策略模式
cover.hpp main.cpp放在同一个文件夹下编译即可 使用策略模式写的一个汇率转换的例子 拓展非常方便 /* cover.hpp 实现汇率转换的一个接口,由于要使用虚函数动态绑定,因此要写一个共同的基类 */ class cover_base{ public: virtual double chg(double)=0; //写一个interface...原创 2019-11-13 20:57:57 · 286 阅读 · 0 评论