原始场景:
超类中定义了公共方法。但子类中可能经常要覆写父类中的方法,来处理不同的业务。子类越多时,这样继承的结构维护起来就越困难,整个继承体系变得没有伸缩性。并且当超类中添加了新的方法时,需要在所有子类中维护各种各样的算法。
策略模式应用:
将超类中的方法实现(也就是行为)单独定义成接口。超类中保留对接口的引用,通过该引用调用接口方法。子类中的算法实现则定义为接口的实现类,子类中将实现类的引用赋值给父类的属性。
这样,在子类中完成对超类的属性赋值。在子类的方法中就能调用接口的方法
原始场景:
超类中定义了公共方法。但子类中可能经常要覆写父类中的方法,来处理不同的业务。子类越多时,这样继承的结构维护起来就越困难,整个继承体系变得没有伸缩性。并且当超类中添加了新的方法时,需要在所有子类中维护各种各样的算法。
策略模式应用:
将超类中的方法实现(也就是行为)单独定义成接口。超类中保留对接口的引用,通过该引用调用接口方法。子类中的算法实现则定义为接口的实现类,子类中将实现类的引用赋值给父类的属性。
这样,在子类中完成对超类的属性赋值。在子类的方法中就能调用接口的方法