package com.worsun.DuckDesign;
public abstract class Duck {
FlyBehavior flyBehavior;
QuackBehavior quackBehavior;
public Duck(){
}
public abstract void display();
public void performFly(){
flyBehavior.fly();
}
public void performQuack(){
quackBehavior.quack();
}
public void swim(){
System.out.println("All ducks float, even decoys!");
}
///动态的设定行为,加入新的方法,改变鸭子的飞的行为
public void setFlyBehavior(FlyBehavior fb){
flyBehavior = fb;
}
///动态的设定行为,加入新的方法,改变鸭子的叫的行为
public void setQuackBehavior(QuackBehavior qb){
quackBehavior = qb;
}
}