设计原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对实现编程。
多用组合,少用继承。
“针对接口编程”真正的意思是“针对超类型(supertype)”编程,关键就在多态。
策略模式定义了算法族,分别封装起来,让它们之间可以互相转换,此模式让算法的变化独立于使用算法的客户。
OO基础:抽象,封装,多态,继承
OO原则:封装变化。多用组合,少用继承。针对接口编程,不针对实现编程。
OO模式:策略模式
Strategy:可由接口或抽象类来实现;定义所有支持的算法的公共接口;Context使用这个接口来调用某ConcreteStrategy定义的算法。
ConcreteStrategy:具体的策略实现,也就是具体的算法实现。
Context:用一个ConcreteStrategy对象来配置;维护一个对Strategy对象的引用;可定义一个接口来让Strategy访问它的数据。