【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;
}
相关推荐
醉风塘16 小时前
Python基础语法完全指南:从零入门到掌握核心概念
开发语言·python
whm277716 小时前
Visual Basic 键盘事件
开发语言·visual studio
渔舟唱晚@16 小时前
从原理到实现:基于 Y.js 和 Tiptap 的实时在线协同编辑器全解析
开发语言·javascript·编辑器
Boop_wu16 小时前
[Java EE] 网络编程套接字
开发语言·单片机·php
亮子AI16 小时前
chart.js 雷达图顶部标题怎样消除?
开发语言·前端·javascript·chart.js
兩尛16 小时前
查找接口成功率最优时间段 (c卷)
c语言·开发语言·算法
0和1的舞者16 小时前
《Spring Bean&DI 通关笔记:从定义到注入的全场景避坑指南》
java·开发语言·学习·spring·ioc·di·web
tryxr16 小时前
synchronized
java·开发语言·锁机制·锁升级·synchronized 锁
_OP_CHEN16 小时前
【从零开始的Qt开发指南】(八)Qt 常用控件之显示类控件(上):Label 与 LCD Number 实战指南
开发语言·c++·qt·前端开发·图形化界面·qt常用控件·企业级组件
Yupureki16 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-模拟
c语言·数据结构·c++·算法·visual studio