【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;
}
相关推荐
qq_336313938 小时前
java基础-IO流(随机点名器)
java·开发语言·python
古城小栈8 小时前
Cargo.toml
开发语言·后端·rust
心语星光8 小时前
用LibreOffice实现批量将pptx文件转换为pdf文件
开发语言·pdf·ppt
鱼蛋-Felix8 小时前
C#浮点数在部分国家解析失效问题
开发语言·unity·c#
冰暮流星8 小时前
javascript数据类型转换-转换为数字型
开发语言·前端·javascript
4***17549 小时前
Python 小游戏实战:打造视觉精美的数独小游戏
开发语言·python·pygame
被制作时长两年半的个人练习生9 小时前
首尾元素相同的间隔循环策略
c++·笔记·循环·ptx
3***g2059 小时前
MATLAB高效算法设计原则利用MATLAB内置函数
开发语言·算法·matlab
千里马-horse9 小时前
React Native bridging 源码分析--ClassTest.cpp
javascript·c++·react native·react.js·bridging
知秋正在9969 小时前
Java实现Html保存为.mhtml文件
java·开发语言·html