c++设计模式之策略模式

来源:互联网 发布:编程珠玑适合什么人看 编辑:程序博客网 时间:2024/06/04 21:48

策略模式定义了一系列算法, 分别封装起来, 让它们之间可以互相替换. 算法的变化独立于使用算法的客户.




#ifndef Strategy_h#define Strategy_hclass IAlogrithm // 抽象接口{public:virtual void sort() = 0;};class AlogrithmA : public IAlogrithm // 具体的算法类A{public:virtual void sort(){printf("快速排序算法.\n");}};class AlogrithmB : public IAlogrithm // 具体的算法类B{public:virtual void sort(){printf("选择排序算法.\n");}};class User // 用户{public:User(IAlogrithm *a) : alogrithm(a) { }void sort(){alogrithm->sort();}private:IAlogrithm *alogrithm;};#endif


测试


#include <iostream>#include "Strategy.h"int main(int argc, char **argv){User user(new AlogrithmA());user.sort();return 0;}
0 0
原创粉丝点击