设计模式-策略模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式-策略模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1113字,纯文字阅读大概需要2分钟。
内容图文
最近在学习设计模式,参考《大话设计模式》这一经典书籍,为了加深自己理解,在这比划比划!
1.策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
描述:1)定义一个算法的抽象基类,包含一个公共方法(C++中的纯虚函数);
2)定义基类的子类,每个子类都用不同算法去实现;
3)定义一个辅助类,类内部包含一个成员变量为抽象基类的指针(C++中抽象基类不能实现产生对象),以及一个方法,方法的内部是调用基类指针指向对象的公共算法,由 多态性可知,这时候会动态绑定,调用不同的算法。
测试代码如下:
1 #include <iostream> 2usingnamespace std; 3 4class Base{ 5public: 6virtualvoid Display() = 0; 7}; 8class A : public Base{ 9public: 10void Display(){ 11 cout<<"A algorithm"<<endl; 12 } 13}; 14class B : public Base{ 15public: 16void Display(){ 17 cout<<"B algorithm"<<endl; 18 } 19}; 20class C : public Base{ 21public: 22void Display(){ 23 cout<<"C algorithm"<<endl; 24 } 25}; 26class context{ 27private: 28 Base* pBase; 29public: 30 context (Base* pB){ 31 pBase = pB; 32 } 33void Display(){ 34 pBase->Display(); 35 } 36}; 37int main(){ 38 context c1((Base*)new A), c2((Base*)new B), c3((Base*)new C); 39 c1.Display(); 40 c2.Display(); 41 c3.Display(); 42return0; 43 }
运行结果为:
A algorithm
B algorithm
C algorithm
原文:http://www.cnblogs.com/xiaomin-is-fighting/p/4556355.html
内容总结
以上是互联网集市为您收集整理的设计模式-策略模式全部内容,希望文章能够帮你解决设计模式-策略模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。