34 lines
670 B
Java
34 lines
670 B
Java
package cn.bunny.pattern2.duck;
|
|
|
|
import cn.bunny.pattern2.behavior.fly.FlyBehavior;
|
|
import cn.bunny.pattern2.behavior.quack.QuackBehavior;
|
|
import lombok.Setter;
|
|
|
|
@Setter
|
|
public abstract class AbstractDuck {
|
|
// 设置新的叫声行为
|
|
QuackBehavior quackBehavior;
|
|
// 设置新的飞行行为
|
|
FlyBehavior flyBehavior;
|
|
|
|
public AbstractDuck() {
|
|
}
|
|
|
|
/**
|
|
* 展示什么类型的鸭子
|
|
*/
|
|
public abstract void display();
|
|
|
|
public void performFly() {
|
|
flyBehavior.fly();
|
|
}
|
|
|
|
public void performQuack() {
|
|
quackBehavior.quack();
|
|
}
|
|
|
|
public void swim() {
|
|
System.out.println("鸭子游泳");
|
|
}
|
|
}
|