MultiThread/pattern/src/main/java/cn/bunny/pattern2/duck/AbstractDuck.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("鸭子游泳");
}
}