设计模式--策略模式(C++实现)

    xiaoxiao2021-03-25  63

    /******************************************************************************************** 策略模式:     将一系列策略进行封装,客户根据需求去调用相应的策略,实现很方便,后续添加策略时,只需继承接口并实现该策略 1.创建策略类,不同的策略去继承同一个接口函数 2.将策略组成一个算法本     1.持有接口函数的指针,根据条件选择具体的算法,完成策略接口的赋值     2.调用策略执行函数,在执行函数中完成具体的算法,在外界看来调用同一个函数接口可以执行不同的策略 ***********************************************************************************************/ #include<iostream> using namespace std; class Strategy { public:     virtual void discount() = 0; }; class five : public Strategy { public:     virtual void discount()     {         cout << "打5折" << endl;     } }; class six : public Strategy { public:     virtual void discount()     {         cout << "打6折" << endl;     } }; class Context { public:     Context(Strategy *strategy)     {         this->p = strategy;     }     void Operator()     {         p->discount();     } private:     Strategy *p; }; void main() {     Strategy *strategy = new five();//创建具体的算法对象     Context *p = new Context(strategy);//扔向算法目录     p->Operator();//指针指向哪个算法,那么此指针调用的就是谁的算法     delete strategy;     delete p;

        Strategy *strategy1 = new six();//创建具体的算法对象     Context *p1 = new Context(strategy1);//扔向算法目录     p1->Operator();//指针指向哪个算法,那么此指针调用的就是谁的算法

        delete strategy1;     delete p1;     system("pause"); }

    转载请注明原文地址: https://ju.6miu.com/read-39906.html

    最新回复(0)