【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;
}
相关推荐
十五年专注C++开发2 分钟前
C++中TAS和CAS实现自旋锁
c++·cas·原子操作·tas
噜噜噜噜鲁先森5 分钟前
STL——String类
开发语言·c++·算法
沐知全栈开发7 分钟前
Bootstrap 下拉菜单
开发语言
谭欣辰10 分钟前
详细讲解 C++ 有向无环图(DAG)及拓扑排序
c++·算法·图论
XS03010610 分钟前
Java 基础(七)多态
java·开发语言
不知名的老吴12 分钟前
一文读懂:单例模式的经典案例分析
java·开发语言·单例模式
欧米欧12 分钟前
C++算法之双指针算法
开发语言·c++
承渊政道15 分钟前
【递归、搜索与回溯算法】(掌握记忆化搜索的核心套路)
数据结构·c++·算法·leetcode·macos·动态规划·宽度优先
REDcker15 分钟前
跨平台编译详解 工具链配置与工程化实践
linux·c++·windows·macos·c·跨平台·编译
天天进步201516 分钟前
Python全栈项目实战:自建高效多媒体处理工具
开发语言·python