策略模式
OO基础:
抽象、封装、继承、多态
知道抽象、封装、继承、多态这些概念,并不会马上让你变成好的面向对象设计者,好的设计师关心的是建立弹性的设计,可以维护,可以应付变化。
OO原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;
针对接口编程,而不是针对实现编程;
多用组合,少用继承。
策略模式:
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
例:
把每组行为想象成一个算法族,
客户使用封装好的飞行和呱呱叫算法族。
“我们使用策略模式实现鸭子的各种行为。”这句话也就是告诉我们,鸭子的行为被封装进入一组类中,可以被轻易的扩充与改变,如果需要,甚至可以在运行时可以改变行为。