C++ 设计模式
文章平均质量分 88
C++设计模式示例代码
莫忘输赢
书读百遍,其义自见...
展开
-
设计模式总篇-组合模式
#define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/22 12:39 @版本:v1 @组合模式 @作用: 将对象组合成树形结构以表示,“部分-整体”的层次结构,组合模式 使得对单个对象和组合对象使用具有一致性。 */ #include<iostream> #include<vector> #incl...原创 2020-02-22 22:00:47 · 111 阅读 · 0 评论 -
设计模式总篇-抽象工厂模式
//抽象工厂模式 AbstrctFactory #define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/20 21:20 @版本:v1 @抽象工厂模式 @作用: 定义一个创建一系列相关或相互依赖接口,无需指定它们的具体类 用于交换产品系列 如 acesss sql server 产品具体类 被具体工厂实现分离 */ #inclu...原创 2020-02-21 14:54:23 · 113 阅读 · 0 评论 -
设计模式总篇-外观模式
#define __CRT_SECURE_NO_WARNINGS #include<iostream> //#include<vld.h> //using namespace std; class SubSys1 { public: void Method1() { std::cout << "方法1" << std::endl; ...原创 2020-02-20 15:16:51 · 134 阅读 · 0 评论 -
设计模式总篇-策略模式
/* @作者:莫忘输赢 @时间: 2020/2/10 12:46 @版本:v1 @策略模式 @作用 定义算法家族,分别封装起来,让它们相互替换,让算法变化不会影响到用户 @优点 每个算法都有自己的类,算法经常变动,简化单元测试,解决的事经常变动的算法 @缺点 客户端要做出判断 */ #include <iostream> //策略基类 class COperation ...原创 2020-02-20 13:11:20 · 104 阅读 · 0 评论 -
设计模式 - C(C++)
设计模式 - C(C++)版本原创 2020-02-20 12:30:06 · 282 阅读 · 0 评论 -
设计模式总篇-工厂方法模式
#define __CRT_SECURE_NO_WARNINGS #include<iostream> //using namespace std; //#include <vld.h> /* @作者:莫忘输赢 @时间: 2020/2/10 14:23 @版本:v1 @工厂方法模式 @作用 不同类厂生产不同对象 */ //雷锋类 class LeiFeng { ...原创 2020-02-20 14:26:05 · 122 阅读 · 0 评论 -
设计模式总篇-访问者模式
/* @作者:莫忘输赢 @时间: 2020/02/22 23:52 @版本:v1 @访问者模式: @实现: 操作和数据相互分离 */ #include<iostream> #include<string> #include<vector> //#include<vld.h> //using namespace std; class Ma...原创 2020-02-22 23:55:21 · 89 阅读 · 0 评论 -
设计模式总篇-原型模式
//克隆 #define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/2/10 14:36 @版本:v1 @原型模式 @作用 用于备份 */ #include<iostream> #include<vector> #include<string> //#include<vld.h> ...原创 2020-02-20 14:44:15 · 98 阅读 · 0 评论 -
设计模式总篇-桥接模式
#define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/22 22:36 @版本:v1 @桥接模式 @作用: 多种角度进行分类,将多种角度进行分离,让他们独立进行变化 */ #include<string> #include<vector> #include<iostream> //#incl...原创 2020-02-22 23:36:00 · 105 阅读 · 0 评论 -
设计模式总篇-命令模式
/* @作者:莫忘输赢 @时间: 2020/02/22 22:56 @版本:v1 @命令模式 @实现: 1建立命令队列 2将命令写入日志 3接收的一方可以拒绝 4添加新的命令不影响其他类 */ #include<iostream> #include<string> #include<vector> //using namespace std; //#in...原创 2020-02-22 23:36:53 · 113 阅读 · 0 评论 -
设计模式总篇-简单工厂模式
#define _CRT_SECURE_NO_WARNINGS /* @简单工厂模式 @作用 主要用于创建对象,添加新类时不会影响之前的代码 根据不同的条件产生不同的类,然后根据不同类的虚函数得到不同的结果 @优点 适用于不同的类创建不同的类时 @缺点 客户端必须知道基类和工厂类 */ #include<iostream> using namespace std; //基类...原创 2020-02-20 12:35:38 · 102 阅读 · 0 评论 -
设计模式总篇-单例模式
#define __CRT_SECURE_NO_WARNINGS #include<string> #include<vector> #include<iostream> #include<vld.h> //using namespace std; /* @作者:莫忘输赢 @时间: 2020/02/22 22:09 @版本:v1 @单例模式...原创 2020-02-22 22:13:13 · 101 阅读 · 0 评论 -
设计模式总篇-建造者模式
#define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/20 15:20 @版本:v1 @建造者模式 @作用 @优点: 在创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式适用 */ #include<iostream> #include<string> #include<vector&...原创 2020-02-20 18:21:13 · 116 阅读 · 0 评论 -
设计模式总篇-状态模式
#define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/20 21:27 @版本:v1 @状态模式 @作用: 根据不同的状态做相应的事情 */ #include<iostream> //#include<vld.h> class Work; class ForenoonState; class NoonSta...原创 2020-02-21 14:54:55 · 121 阅读 · 1 评论 -
设计模式总篇-解释器模式
/* @作者:莫忘输赢 @时间: 2020/02/23 6:43 @版本:v1 @解释器模式: @实现: 实现一个小型解释器所用模式 */ #include<iostream> #include<vector> #include<string> //using namespace std; //#include <vld.h> clas...原创 2020-02-23 06:54:57 · 179 阅读 · 0 评论 -
设计模式总篇-代理模式
#define __CRT_SECURE_NO_WARNINGS /* /* @作者:莫忘输赢 @时间: 2020/2/10 14:06 @版本:v1 @代理模式 @作用 动态的给对象添加一些额外的职责。 @优点 远程代理:隐藏一个对象在不同地址空间的事实 虚拟代理:通过存放需要很长时间实例化对象 安全代理:通过控制真是对象的访问权限 智能引用:当调用真实的对象...原创 2020-02-20 14:14:53 · 152 阅读 · 0 评论 -
设计模式总篇-装饰模式
/* @作者:莫忘输赢 @时间: 2020/2/10 13:25 @版本:v1 @装饰模式 @作用 动态的给对象添加一些额外的职责。 @优点 装饰模式就是把附加的功能放到单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以 有选择的,按顺序的使用装饰功能 @缺点 @待完善: 之后利用引用计数进行删除对象 */ #include <iostream> #inc...原创 2020-02-20 13:59:08 · 133 阅读 · 0 评论 -
设计模式总篇-模板方法模式
/* @作者:莫忘输赢 @时间: 2020/02/20 14:47 @版本:v1 @模板方法模式 @作用 将公共代码放到父类之中,将可变代码在父类虚函数中声明,子类中实现 */ #include<iostream> //#include<vld.h> #include<vector> #include<string> class Abstrac...原创 2020-02-20 14:55:19 · 105 阅读 · 0 评论 -
设计模式总篇-适配器模式
/* @作者:莫忘输赢 @时间: 2020/02/21 15:00 @版本:v1 @适配器模式 @作用: 双方都不适合修改时,使用适配器模式 */ #include<iostream> //#include<vld.h> class Target { public: virtual void Request() { std::cout << "普通...原创 2020-02-21 15:13:58 · 119 阅读 · 0 评论 -
设计模式总篇-观察者模式
#define __CRT_SECURE_NO_WARNINGS /* @作者:莫忘输赢 @时间: 2020/02/20 18:23 @版本:v1 @观察者模式 @作用: 创建观察者,当有事件发生时,通知其他人更新自己的状态 */ #include<iostream> #include<vector> #include<string> //using nam...原创 2020-02-21 14:55:40 · 98 阅读 · 0 评论