设计模式入门学习笔记----策略模式

『策略模式』定义了算法族,分别封装起来,让它们之间可以互相替换,

此模式让算法的变化独立于使用算法的客户。

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个算法族。

通过这个例子进行理解,这只是笔记,用于自己看完一个设计模式后的回忆与记录,比较肤浅,还可能会有错误,如果可以,谢谢指正~

原文地址:https://www.cnblogs.com/pp153/p/7505828.html