C++设计模式
Vstornzw
自由,无束
展开
-
C++设计模式——中介者模式(高屋建瓴)
#include <iostream>using namespace std;class Mediator;// 抽象人class Person { public: virtual void SetMediator(Mediator *mediator){}//设置中介 virtual void SendMessage(std::string message) {}//向中介者发送信息 virtual void GetMessage(std::string message)原创 2021-01-07 14:14:35 · 98 阅读 · 0 评论 -
C++设计模式——享元模式(高屋建瓴)
原网址:https://blog.csdn.net/CoderAldrich/article/details/83183271做出如下修改:#include <iostream>#include <map>#include <vector>using namespace std;typedef struct PointTag__ { int x_; int y_; PointTag__(){} PointTag__(int a, int b)原创 2021-01-07 12:01:34 · 125 阅读 · 0 评论 -
C++设计模式——组合模式(高屋建瓴)
转载https://blog.csdn.net/CoderAldrich/article/details/83115374C++组合模式代码修改#include <iostream>#include <string>#include <vector>using namespace std;class Component { public: Component(string name) : m_strCompname(name){} virtual ~原创 2020-09-02 20:36:11 · 143 阅读 · 0 评论 -
C++设计模式——访问者模式(高屋建瓴)
原文 https://blog.csdn.net/CoderAldrich/article/details/83270301我敲了代码 做出一些修改#include <iostream>#include <vector>#include <algorithm>//包含find函数using namespace std;class ConcreteElementA;class ConcreteElementB;class Visitor { publi原创 2020-09-05 13:39:53 · 228 阅读 · 1 评论 -
C++设计模式——观察者模式(高屋建瓴)
原网址:https://blog.csdn.net/CoderAldrich/article/details/83183700现对代码做出如下修改:#include <iostream>#include <list>using namespace std;class Observer { public: virtual void Update(int) = 0;};class Subject { public: virtual void Attach(O原创 2020-09-05 14:27:51 · 178 阅读 · 0 评论 -
C++设计模式——备忘录模式(高屋建瓴)
原文地址:https://blog.csdn.net/qq_33232152/article/details/94325685对代码做出修改//将每一种状态即设置的string封装成类Memento,想回到哪种状态,就返回到哪个Memento#include<iostream>#include<string>#include<vector>using namespace std;class Memento { public: Memento(stri原创 2020-09-05 15:12:31 · 130 阅读 · 0 评论 -
C++设计模式——模板方法模式(高屋建瓴)
原文网址:https://blog.csdn.net/CoderAldrich/article/details/83270337#include <iostream>using namespace std;class AbstractClass { public: void TemplatrMethod() { cout<<"TemplateMethod"<<endl; PrimitiveOperation2(); } protected原创 2020-10-15 19:00:31 · 80 阅读 · 0 评论 -
C++设计模式——状态模式(高屋建瓴)
原网址:https://blog.csdn.net/CoderAldrich/article/details/83183733#include <iostream>using namespace std;class Context;class State { public: virtual void Handle(Context *context) = 0;};class ConcreteStateA : public State { public: virtu原创 2020-10-19 10:10:32 · 77 阅读 · 0 评论 -
设计模式C++——命令模式(高屋建瓴)
原网址:https://blog.csdn.net/walkerkalr/article/details/29853441#include <iostream>using namespace std;//电灯类class Light { public: void On() { cout << "Light On !" << endl; } void Off() { cout << "Ligeht Off !" &原创 2020-10-19 13:52:36 · 84 阅读 · 0 评论 -
C++设计模式——装饰模式(高屋建瓴)
原网址:https://blog.csdn.net/CoderAldrich/article/details/83115394重点在于 ConcreteDecoratorA(Component *decorator) : Decorator(decorator) #include <iostream>using namespace std;class Component { public: virtual void Operation() = 0;};class Concre原创 2020-10-19 16:33:53 · 138 阅读 · 2 评论 -
C++设计模式——桥接模式(高屋建瓴)
原网址:https://blog.csdn.net/mrailence/article/details/53103284#include <iostream>using namespace std;class AbstractionImlement { public: AbstractionImlement() {} virtual ~AbstractionImlement() {} virtual void Operation() = 0;};class Concret原创 2020-10-21 16:01:08 · 131 阅读 · 0 评论 -
C++设计模式---适配器模式(高屋建瓴)
原网址:https://blog.csdn.net/CoderAldrich/article/details/83115299#include <iostream>using namespace std;class Target { public: Target() {} virtual ~Target() {} virtual void Request() { cout << "Target::Requeast"<<endl; }};原创 2020-10-21 16:57:43 · 84 阅读 · 0 评论 -
C++设计模式实现--原型模式(高屋建瓴)
原网址:https://lcxing.blog.csdn.net/article/details/79521841参考网址:https://blog.csdn.net/lin_duo/article/details/84888766#include <iostream>using namespace std;class Sheep { friend ostream& operator<<(ostream&, Sheep& sheep); publ原创 2020-10-22 11:20:43 · 86 阅读 · 0 评论 -
C++设计模式——建造者模式(高屋建瓴)
原网站:https://blog.csdn.net/u012581604/article/details/72758110修改后的代码如下:#include <iostream>using namespace std;#define DELETE_OBJECT(Obj) \ {\ if (Obj) \ {\ delete (Obj); \ (Obj)=NULL;\原创 2020-10-22 14:09:16 · 151 阅读 · 1 评论 -
C++设计模式——策略模式(高屋建瓴)
原网址:https://blog.csdn.net/dwb1015/article/details/18139881代码做如下修改:#include <iostream>using namespace std; /*付款金额计算的抽象类*/class CashSuper { public: /*计算应付金额*/ virtual double AcceptCash(double money) = 0;}; /*正常收费策略*/class CashNormal : pub原创 2020-10-23 15:21:04 · 129 阅读 · 0 评论 -
C++设计模式——装饰着模式(高屋建瓴)
#include #includeusing namespace std;//person 类class Person {public:Person(){}Person(std::string name);virtual void Show();//当你用一个基类指针或引用指向一个继承类对象的时候,//调用一个虚函数时, 实际调用的是继承类的版本。private:std::string name;};Person::Person(std::string name){this-原创 2020-10-26 16:04:36 · 146 阅读 · 0 评论