【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;
}
相关推荐
wt_cs15 分钟前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
_WndProc37 分钟前
【Python】Flask网页
开发语言·python·flask
liujing102329291 小时前
Day04_刷题niuke20250703
java·开发语言·算法
DolphinDB1 小时前
如何在C++交易系统中集成高性能回测与模拟撮合
c++
能工智人小辰1 小时前
二刷 苍穹外卖day10(含bug修改)
java·开发语言
DKPT1 小时前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
缘来是庄1 小时前
设计模式之外观模式
java·设计模式·外观模式
你是橙子那我是谁1 小时前
设计模式之外观模式:简化复杂系统的优雅之道
设计模式
筏.k1 小时前
C++ 网络编程(14) asio多线程模型IOThreadPool
网络·c++·架构
LL.。2 小时前
同步回调和异步回调
开发语言·前端·javascript