宏润建设网站,wordpress移植,东莞wordpress,开源系统 网站策略模式
C中的策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;它允许在运行时选择算法的行为。策略模式通过将算法封装成独立的类#xff0c;并且使它们可以互相替换#xff0c;从而使得算法的变化独立于使用算法的客户端。
策略模式通…策略模式
C中的策略模式Strategy Pattern是一种行为型设计模式它允许在运行时选择算法的行为。策略模式通过将算法封装成独立的类并且使它们可以互相替换从而使得算法的变化独立于使用算法的客户端。
策略模式通常由三个核心组件组成
1.策略接口Strategy Interface定义了所有具体策略类必须实现的方法通常是一个纯虚函数接口。 2.具体策略类Concrete Strategies实现了策略接口并提供了不同的算法实现。 3.环境类Context Class包含一个指向策略接口的指针成员用于调用具体策略类的算法。
示例代码
#includeiostream
#includestring
using namespace std;class Strategy
{
public:virtual void execute() 0;
};class ConcreteStrategyA : public Strategy
{
public:void execute() override{cout _i am A strategy_ endl;}
};class ConcreteStrategyB : public Strategy
{
public:void execute() override{cout _i am B strategy_ endl;}
};class Context
{
public:void call(int type){if (s ! nullptr){delete s;}switch (type){case 1:s new ConcreteStrategyA;break;case 2:s new ConcreteStrategyB;break;default:break;}s-execute();}~Context(){if (s ! nullptr){delete s;}}private:Strategy *s nullptr;
};int main()
{Context *c new Context;c-call(1);c-call(2);
}