![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
主要以C++代码实现
爱写代码的马良
强者不屈于命运。
展开
-
观察者模式
被观察者维护一个队列,将观察者放入队列。有消息就通知观察者。下面展示一些 示例代码片。/* 江湖中有多个帮派,还有一名无人不知,无事不晓的百晓生。当江湖中发生武林打斗事件,百晓生作为天生的大嘴巴会广播武林消息,每个帮派的门第对于事件的处理方式均不同,同帮派被欺负,要报仇,同帮派欺负别人,叫好。*/#include <iostream>#include <string>#include <list>#include <memory>usi原创 2022-01-09 15:53:15 · 263 阅读 · 0 评论 -
2种单例模式类型
#include <iostream>using namespace std;//单例模式全局只能有一个对象,注意:懒汉模式遇到多线程 需要创建一个互斥锁,使它线性执行//懒汉class Singelton {public: static Singelton* getInstance() { // if (NULL == instance) { instance = new Singelton; } // ++m_count; ret原创 2021-08-10 16:42:15 · 84 阅读 · 0 评论 -
抽象工厂模式
#include <iostream>using namespace std;// 是一个功能集合组成的抽象类//抽象显卡class AbstractDisplay {public: virtual void show() = 0;};//抽象内存class AbstractStorage {public: virtual void store() = 0;};//抽象cpuclass AbstractCpu {public: virtual void原创 2021-08-10 16:37:19 · 64 阅读 · 0 评论 -
工厂方法模式
#include <iostream>using namespace std;//简单工厂模式+ 开闭原则 = 工厂方法模式//定义创建产品的工厂接口,实例化不同的工厂,创建不同的类,被创建的类具有相同的父类。class Fruit {public: virtual void createFruit() = 0;};class Factory {public: virtual Fruit* create() = 0;};class orangeFruit原创 2021-08-10 16:35:35 · 54 阅读 · 0 评论 -
简单工厂模式
#include <iostream>#include <string>using namespace std;class Fruit{public: virtual void createFruit() = 0;};class appleFruit : public Fruit{public: void createFruit() { cout << "create apple" << endl; }};class原创 2021-08-10 15:30:11 · 57 阅读 · 0 评论