【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;
}
相关推荐
k***92164 分钟前
C++:继承
java·数据库·c++
崇山峻岭之间6 分钟前
Matlab学习记录20
开发语言·学习·matlab
逍遥德9 分钟前
JPA 操作对象图 (Object Graph) 详解
开发语言·python
咔咔咔的14 分钟前
756. 金字塔转换矩阵
c++
微爱帮监所写信寄信15 分钟前
微爱帮监狱寄信写信小程序信件内容实时保存技术方案
java·服务器·开发语言·前端·小程序
fqbqrr20 分钟前
2601,C++的模块2
c++
李少兄21 分钟前
时间戳转换工具
开发语言·javascript·工具
ss27328 分钟前
CompletionService:Java并发工具包
java·开发语言·算法
额呃呃32 分钟前
select和poll之间的性能对比
开发语言·算法
智航GIS33 分钟前
7.2 Try Except语句
开发语言·python