【C++ 策略设计模式 】

策略设计模式

定义一组算法,将每个算法都封装起来,并且使它们之间可以互换

StartegyMode.cpp

javascript 复制代码
#include <iostream>
 
using namespace std;
 
class IStrategy {
public:
	IStrategy() {}
	virtual ~IStrategy() {}
 
	virtual void Discountsfun() = 0;
};
 
class qxj : public IStrategy {
public:
	qxj() {}
	~qxj() {}
 
	void Discountsfun() {
		cout << "run qxj 20'%' off" << endl;
	}
};
 
class gqj : public IStrategy {
public:
	gqj() {}
	~gqj() {}
 
	void Discountsfun() {
		cout << "run gqj 10'%' off " << endl;
	}
};
 
class Context {
public:
	Context(IStrategy *IStrategy) { pIStrategy = IStrategy; }
	~Context() { delete pIStrategy; }
 
	void run() {
		pIStrategy->Discountsfun();
	}
 
private:
	IStrategy *pIStrategy;
};
 
 // g++ StartegyMode.cpp -o StartegyMode
int main(int argc, char*argv[])
{
	Context context1(new qxj());
	context1.run();
 
	Context context2(new gqj());
	context2.run();
 
	return 0;
}
相关推荐
H_BB2 分钟前
算法详解:滑动窗口机制
数据结构·c++·算法·滑动窗口
淀粉肠kk3 分钟前
【C++】封装红黑树实现Mymap和Myset
数据结构·c++
wefg117 分钟前
【C++】IO流
开发语言·c++
im_AMBER20 分钟前
Leetcode 63 定长子串中元音的最大数目
c++·笔记·学习·算法·leetcode
"菠萝"24 分钟前
C#知识学习-020(访问关键字)
开发语言·学习·c#
箫笙默1 小时前
JS基础 - 正则笔记
开发语言·javascript·笔记
xxp43211 小时前
Qt 网络编程 TCP通信
开发语言·qt
T***u3332 小时前
PHP在电商中的会员管理
开发语言·wireshark·php·ue4·jina
张丶大帅2 小时前
JS案例合集
开发语言·javascript·笔记
2301_795167203 小时前
Python 高手编程系列八:缓存
开发语言·python·缓存