定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
一个使用了策略模式案例的UML类图:(策略模式)
个人见解:策略模式通过封装算法族,使用多态的方式持有FlyBehavevior 和 QuackBehavior 两个算法族的引用。可以动态的设置这两个算法族的引用行为,从而做到在运行时指定FlyBehavior 和 QuackBehavior 两者的行为方式。
设计原则:1、多用组合,少用继承。
2、封装变化。
3、针对接口变成,不针对实现编程。