C++实现策略模式

来源:互联网 发布:淘宝卖家怎么装修店铺 编辑:程序博客网 时间:2024/05/17 23:35
/*策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独  立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各  自实现上存在差异。用策略模式来封装算法,效果比较好。Created by Phoenix_FuliMa*/#include <iostream>using namespace std;class Strategy{public:virtual void algorithm() {}};class Strategy_1:public Strategy{public:virtual void algorithm(){cout<<"Algorithm one is called!\n"<<endl;}};class Strategy_2:public Strategy{public:virtual void algorithm(){cout<<"Algorithm two is called!\n"<<endl;}};class Client{private:Strategy *strategy;public:Client(Strategy *strategy){this->strategy = strategy;}void SetStrategy(Strategy *strategy){this->strategy = strategy;}void DispalyAlgorithm(){this->strategy->algorithm();}};int main(){Strategy *strategy_1 = new Strategy_1();Strategy *strategy_2 = new Strategy_2();Client *client = new Client(strategy_1);client->DispalyAlgorithm();client->SetStrategy(strategy_2);client->DispalyAlgorithm();system("pause");return 0;}

原创粉丝点击