设计模式之策略模式

设计模式之策略模式

需求:设计一套用来形容动物的系统,动物具体的行为有是否可以在海里游,能否在陆地跑,能不能在天空飞。(假设只用列举老虎,狮子,蛇,猴子,天鹅,鲤鱼)
## 传统方式

设计模式之策略模式_第1张图片

  1. 此时所有动物都继承了Animal这个类,也就是所有动物都有fly(),run(),swim()方法,这是不对的(老虎不能飞)
  2. 然后就是都依赖继承的Animal类,这个超类一旦局部改动,会影响其他部分,会有溢出效应
  3. 解决第一点可以覆盖父类的方法来解决=>overwrite

## 改善(使用策略模式)
设计模式之策略模式_第2张图片
改进:使用接口来代替具体的行为,分别封装行为接口,超类中放接口对象,在子类中具体指定行为对象。原则就是分离变化部分,封装接口,基于接口编程实现各种功能

你可能感兴趣的:(设计模式,设计模式,java)