策略模式:分别封装行为接口,实现算法组,超类里放行为接口对象,在子类里具体设定行为对象。原则就是:分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者。
策略模式注意点:1)分析项目中变化部分与不变部分;2)多用组合少用继承;用行为类组合,而不是行为的继承更有弹性。
鸭子游戏项目设计思路
一般设计是分析鸭子类别,把相同的放在抽象超类中实现,不同的在抽象超类中定义为抽象方法,然后不同的鸭子继承抽象超类,实现抽象方法
public abstract class Duck { public Duck() { } //鸭子都是一样的叫声 public void quack() { System.out.println("~~gaga~~"); } //鸭子都会游泳 public void swim() { System.out.println("~~im swim~~"); } //鸭子长相不一样 public abstract void display(); }