『策略模式』定义了算法族,分别封装起来,让它们之间可以互相替换,
此模式让算法的变化独立于使用算法的客户。
1、将会需要动态改变的代码与基本长期固定不需改变的代码区分开来
2、少用继承,多用组合
3、对需要动态改变的事件、行为进行的封装类称为算法族,它们之间可以用于动态的代替
例如:
各种duck现在要新加fly方法
以前:直接在DUCK父类(原来有个quack方法)加入fly方法,让子类继承实现
现在:
父类DUCK,子类duck1,duck2,duck3………
将子类的飞行fly方法与叫声quack方法定义为接口,具体的类分别实现fly和quack,
DUCK父类中定义实例变量fly和quack(接口类型),
duck1中,fly =new 一个具体实现fly的类,quack =new 一个具体实现quack的类
对fly和quack进行具体的实现的类便是2个算法族。
通过这个例子进行理解,这只是笔记,用于自己看完一个设计模式后的回忆与记录,比较肤浅,还可能会有错误,如果可以,谢谢指正~