摘要: 设计模式-依赖倒转原则 //设计模式-依赖倒转原则 #include <iostream> using namespace std; //银行工作人员 class AbstractWorker{ public: virtual void DoBusiness() = 0; }; //专门负责办理存款 阅读全文
posted @ 2023-10-14 19:37 洋綮 阅读(3) 评论(0) 推荐(0)
摘要: 行为型-装饰模式 //装饰模式 /*装饰模式又叫包装模式,通过一种对客户端透明的方式来扩展对象功能,是继承关系的一种替代*/ #include <iostream> using namespace std; //一般情况下 用继承实现类的功能拓展 //装饰模式 可以用动态 //抽象英雄 class 阅读全文
posted @ 2023-10-14 19:36 洋綮 阅读(7) 评论(0) 推荐(0)
摘要: 行为型-观察者模式 //观察者模式 /*观察者模式是用于建立一种对象与对象之间的依赖关系, 一个对象发生改变时将自动通知其他对象,其他对象将做出相应的反应。*/ /*在观察者模式中,发生改变的对象称为观察对象,而被通知的对象称为观察者。 一个观察目标可以对应多个观察者*/ #include <ios 阅读全文
posted @ 2023-10-14 19:35 洋綮 阅读(7) 评论(0) 推荐(0)
摘要: 行为型-命令模式 //命令模式 #include <iostream> #include <queue> #include <Windows.h> using namespace std; //协议处理类 class HandleClientProtocol{ public: //处理增加金币 vo 阅读全文
posted @ 2023-10-14 19:33 洋綮 阅读(3) 评论(0) 推荐(0)
摘要: 行为型-策略模式 //策略模式 /*策略模式定义了一系列算法,并将每个算法封装起来,而且使它们 还可以相互替换。策略模式让算法独立于使用它的客户而独立变化*/ #include <iostream> using namespace std; //抽象武器 武器策略 class WeaponStrat 阅读全文
posted @ 2023-10-14 19:32 洋綮 阅读(8) 评论(0) 推荐(0)
摘要: 行为型-模板方法模式 //模板方法模式 #include <iostream> using namespace std; // class DrinkTemplate{ public: virtual void BoildWater() = 0; //煮水 virtual void Brew() = 阅读全文
posted @ 2023-10-14 19:31 洋綮 阅读(5) 评论(0) 推荐(0)
摘要: 结构型-适配器模式 //适配器模式 #include <iostream> #include <vector> #include <algorithm> using namespace std; //适配器模式 就是将已经写好的接口,但是这个接口不符合需求 //将写好的接口转换成目标接口 //这函数 阅读全文
posted @ 2023-10-14 19:30 洋綮 阅读(5) 评论(0) 推荐(0)
摘要: 结构型-外观模式 //外观模式: /*就是将复杂的子类系统抽象到同一个接口进行管理, 外界只需要通过此接口与子类系统进行交互 而不必要直接与复杂的子类系统进行交互*/ #include <iostream> using namespace std; //电视机 class Television{ p 阅读全文
posted @ 2023-10-14 19:29 洋綮 阅读(3) 评论(0) 推荐(0)
摘要: 结构型-代理模式 //代理模式:为其他对象提供一种代理以控制对这个对象的访问 #include <iostream> using namespace std; //提供一种代理来控制对其他对象的访问 class AbstractCommonInterface{ public: virtual voi 阅读全文
posted @ 2023-10-14 19:15 洋綮 阅读(7) 评论(0) 推荐(0)
摘要: 创建型-单例模式 //单例模式 只允许实例化一个对象 //将构造函数私有 #include <iostream> using namespace std; class A{ private: A(){ a = new A; } public: static A* getInstace(){ retu 阅读全文
posted @ 2023-10-14 19:14 洋綮 阅读(4) 评论(0) 推荐(0)
摘要: 创建型-抽象工厂模式 //抽象工厂模式 //抽象工厂针对的是产品族,而不是产品等级结构 #include <iostream> using namespace std; //抽象苹果 class AbstractApple{ public: virtual void ShowName() = 0; 阅读全文
posted @ 2023-10-14 19:12 洋綮 阅读(8) 评论(0) 推荐(0)
摘要: 创建型-工厂方法模式 //工厂模式-符合开闭原则 //缺:1.类的个数成倍数增加,导致类越来越多,增加维护成本 //2.需要自己判断创建类型(增加了系统的抽象性和理解难度) //优:1.不需要记住具体类名,甚至连具体参数都不用记住 //2.实现了对象创建和使用分离 //3系统的可扩展性也就变得非常好 阅读全文
posted @ 2023-10-14 19:07 洋綮 阅读(11) 评论(0) 推荐(0)
摘要: 创建型-简单工厂模式 //简单工厂模式 //1.增加新的功能是通过修改源代码实现,不符合开闭原则 //2.这个类职责过重,这个类发生问题,会影响很多使用这个工厂的模块 #include <iostream> using namespace std; //抽象水果类 class Fruit{ publ 阅读全文
posted @ 2023-10-14 19:04 洋綮 阅读(8) 评论(0) 推荐(0)
摘要: 高性能C++之无锁队列 lock_free_queue.h #pragma once #include <atomic> #include <vector> #include <cstddef> template<typename T, size_t N = 1024> class LockFree 阅读全文
posted @ 2023-10-14 17:30 洋綮 阅读(434) 评论(0) 推荐(0)
摘要: 对象池设计与实现 object_pool.h #ifndef _CELL_OBJECT_POOL_H_ #define _CELL_OBJECT_POOL_H_ #include<stdlib.h> #include<assert.h> #include<mutex> #ifdef _DEBUG # 阅读全文
posted @ 2023-10-14 13:23 洋綮 阅读(11) 评论(0) 推荐(0)
摘要: 内存池设计与实现 alloctor.h #ifndef _ALLOCTOR_H_ #define _ALLOCTOR_H_ void* operator new(size_t size); void operator delete(void* p); void* operator new[](siz 阅读全文
posted @ 2023-10-14 13:21 洋綮 阅读(33) 评论(0) 推荐(0)
摘要: 基于C++11 通用线程池 thread_pool.h #ifndef _PTHREAD_H_ #define _PTHREAD_H_ #include <iostream> #include <queue> #include <vector> #include <future> class Pth 阅读全文
posted @ 2023-10-14 09:18 洋綮 阅读(15) 评论(0) 推荐(0)