【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;
}
相关推荐
Java面试题总结1 分钟前
使用 Python 在 Excel 中添加和自定义文本框
开发语言·python·excel
我登哥MVP6 分钟前
走进 Gang of Four 设计模式:解释器模式
java·设计模式·解释器模式
geovindu14 分钟前
CSharp: Recursion Algorithm
开发语言·后端·算法·c#·递归算法
dsyyyyy110118 分钟前
用JavaScript实现排序算法
开发语言·javascript·排序算法
sTone8737520 分钟前
写时复制COW的第一性理解
android·c++·flutter
CHANG_THE_WORLD29 分钟前
逐层拆解:C++ 虚函数从对象内存到手工调用的完整过程
java·开发语言·c++
我登哥MVP30 分钟前
走进 Gang of Four 设计模式:过滤器模式
java·设计模式·过滤器模式
Scott9999HH31 分钟前
2026 避坑实录:国产品牌压力变送器什么牌子好?从硬件抗扰到 C++ Qt 实时曲线绘制源码剖析
开发语言·c++·qt
ch0sen1pm36 分钟前
800 行代码手写 Reactor 网络库:从 epoll 到聊天室
c++
geats人山人海1 小时前
c# 第八章 多态与案例
开发语言·c#