设计模式
没有金刚钻,也木有刷子
个人学习记录而已,主要供自己查看,如有不当请见谅。
展开
-
设计模式--责任链模式(C++)
责任链模式就是对一批请求进行判断,是自己责任范围内的就处理,不是自己责任范围内的就传递给下一个负责人;比如有三个项目经理,顺序是A->B->C,把所有的项目都先传递给A,A拿到所有的项目后,把属于自己负责的项目留下来,把剩下的传递给B,然后B把属于自己的留下来,把不属于自己的再传递给C;1.请求者接口基类#pragma once#include <string>using namespace std;class Female{public: Female(voi原创 2022-02-15 11:15:11 · 800 阅读 · 0 评论 -
设计模式--观察者模式(C++)
观察者模式就是观察者根据被观察者的行为做出自己行为的模式,最多允许一个对象既是观察者也是被观察者;以小明为被观察者,班长和老师为观察者为例;原创 2022-02-14 17:10:44 · 984 阅读 · 0 评论 -
设计模式--命令模式(C++)
命令模式就是外界把命令告诉中间枢纽,然后由中间枢纽根据命令的不同,指派给相应的部门去完成;就像客户把要求告诉产品经理,然后产品经理根据客户不同的命令,把这些命令分给需求组、美工组、研发组去完成;客户直接与客户经理对接,而不与需求组、美工组、研发组直接对接;1.部门基类#pragma onceclass Group{public: Group(); virtual ~Group(); virtual void AddAction() = 0; virtual void ChangeAc原创 2022-02-14 14:14:50 · 522 阅读 · 0 评论 -
设计模式--抽象工厂模式(C++)
抽象工厂可以理解为简单工厂模式和工厂方法模式的结合,抽象工厂模式拥有多个工厂,每个工厂又可以生产多种产品;可大致理解为简单工厂模式是一个工厂,自己一对多;工厂方法模式是多个工厂,每个工厂一对一;抽象工厂模式是多个工厂,每个工厂一对多;1.产品接口Human#pragma onceclass Human{public: Human(); virtual ~Human(); virtual void character() = 0; virtual void Sex() = 0;pri原创 2022-02-13 13:03:28 · 1053 阅读 · 0 评论 -
设计模式--工厂方法模式(C++)
简单工厂模式只有一个工厂,这个工厂生产不同的产品;而工厂方法模式里可以拥有多个工厂,每个工厂负责一种产品的生产;1.产品基类#pragma onceclass Human{public: Human(); ~Human(); virtual void Skin() = 0;private:};Human::Human(){}Human::~Human(){}2.产品子类1#pragma once#include "Human.h"#include原创 2022-02-13 10:13:44 · 703 阅读 · 0 评论 -
设计模式--简单工厂模式(C++)
工厂模式中定义一个创建产品的接口(比如:creatHuman(std::string HumanType)这个函数),将实际创建工作推迟到子类中。这样可以使系统在不修改具体工厂角色的情况下创建不同新的产品。1.产品基类(Human)#pragma onceclass Human{public: Human(); ~Human(); virtual void Skin() = 0;private:};Human::Human(){}Human::~Human(){}原创 2022-02-13 09:31:16 · 519 阅读 · 0 评论 -
设计模式--单例模式(C++)
设计模式--单例模式原创 2022-02-12 17:10:37 · 539 阅读 · 0 评论 -
设计模式--代理模式(C++)
代理模式中的代理和执行者继承于同一个父类,先将执行者传递给代理人,然后代理人去调用实际执行者的行为;1.父类#pragma onceclass Women{public: Women(); virtual ~Women(); virtual void SeeMovieWithMan() = 0;private:};Women::Women(){}Women::~Women(){}2.代理人#pragma once#include "Women.h"原创 2022-02-12 14:33:49 · 490 阅读 · 0 评论 -
设计模式--策略模式(C++)
简介:一个策略对应一个锦囊;当用的时候,找到这个锦囊,从锦囊里拿出策略来使用。注意:锦囊只是简单的装载和调用策略,锦囊里没有逻辑。策略会有更大的自主权,运行更多的逻辑。实现:策略作为一个父类,具体的策略行为在子类中实现;锦囊作为具体策略的容器,在其构造函数中传入我们具体的策略;1.父类策略#pragma onceclass Strategy{public: Strategy(void); virtual ~Strategy(void); virtual void MyStrate原创 2022-02-12 14:16:20 · 623 阅读 · 0 评论