策略设计模式:strategy pattern
定义了算法族,分别封装起来,让他们之间可以互相替换。
此模式让算法的变化独立于算法的客户类
客户类,以 接口定义的 实例变量作其域,即,将部分属性 委托给另一个接口管理。 即局部变化独立于其他部分。
该接口有一组实现类,即算法族。由于 面向接口编程,故可使其互相替换。
效果:1.当改变算法族的 实现时,使用该实现的客户类中的属性分别变化,但不影响其他属性。
2.可随时改变客户类中的属性的实现(算法族内替换)。
使用到的设计原则:单一职责 合成复用 依赖倒置