策略模式

来源:互联网 发布:网络代购图片 编辑:程序博客网 时间:2024/06/05 11:07

策略模式:定义算法族,分别封装起来,让它们之间可以相互替换,次此模板让算法的变化独立于使用算法的客户。


    设计一个抽象类Duck,里面有将鸭子的两个行为分离出来的属性FlyBehavior flyBehavior; QuackBehavior quackBehavior;抽象类中有一般的方法,同时还有设置两个属性的方法。FlyBehavior具体的什么鸭子具有什么行为,然后最后在鸭子的构造函数中进行动态实现。也可以调用Duck中的两个设置函数。

    主要是要学会分开变化和不变化的部分,实现接口编程,同时接口不能简化代码。它使用了一个叫做鸭子的例子:多用组合,少用继承。

    其中里面使用到了软件工程中的类图的一些常用的关系:is a(继承)has a(聚合)implements(实现)。参考:http://blog.csdn.net/blues1021/article/details/45739941

    最后提到了软件工程,大家可以看看软件工程中常用的开发模型:参考

http://blog.sina.com.cn/s/blog_48d66f810101ap71.html

 

0 0
原创粉丝点击