C++设计模式之二十一:Strategy(策略模式)

本文介绍了一种设计模式——策略模式,并通过具体的代码实例展示了如何定义一系列的算法并将它们封装起来,以便于在不同的环境中进行相互替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、意图:

 定义一些列的算法,把他们一个个封装起来,使其可以相互替换。

二、类图:


三、组成元素:

                    i.           Strategy:策略

                  ii.           ConcreteStrategy:具体策略

                iii.           Context:使用环境


四、实现代码:

#include "iostream"
using namespace std;

class Strategy
{
public:
	virtual void AlgorithmInterface()=0;
};

class ConcreteStrategyA:public Strategy
{
public:
	void AlgorithmInterface()
	{
		cout<<"AlgorithmInterface A"<<endl;
	}
};

class ConcreteStrategyB:public Strategy
{
public:
	void AlgorithmInterface()
	{
		cout<<"AlgorithmInterface B"<<endl;
	}
};
class ConcreteStrategyC:public Strategy
{
public:
	void AlgorithmInterface()
	{
		cout<<"AlgorithmInterface C"<<endl;
	}
};

class Context
{
private:
	Strategy* p_Strategy;
public:
	Context(Strategy* p_s)
	{
		p_Strategy=p_s;
	}
	void ContextInterface()
	{
		if (NULL!=p_Strategy)
		{
			p_Strategy->AlgorithmInterface();
		}
	}

};

void main()
{
	Strategy* pStrategy=new ConcreteStrategyA();
	Context* pContext=new Context(pStrategy);

	pContext->ContextInterface();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值