策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
总体思路:将可能变算法封装成统一的接口。类只包含接口而不包含实现。算法的实现由实现接口的类来完成。通过调用不同的方法类来调用不同的算法。
Duck类中包含fly和quack的接口而不包含实现。Duck含有两个set方法。需要不同的行为时可以动态加载不同的行为类。这样就把有可能改变的地方封装起来了。
策略模式涉及设计原则:
封装变化
针对接口编程,而不是针对实现编程
多用组合少用继承
原文:http://www.cnblogs.com/loststart/p/5180914.html