用桥接模式实现咖啡分类 
时间: 2023-05-23 21:02:47 浏览: 32
非常好的题目!使用桥接模式可以将咖啡的原料与品种进行分类,实现代码如下:
```java
public interface CoffeeType {
String getCoffeeType();
}
public class Arabica implements CoffeeType {
@Override
public String getCoffeeType() {
return "阿拉比卡咖啡豆";
}
}
public class Robusta implements CoffeeType {
@Override
public String getCoffeeType() {
return "罗布斯塔咖啡豆";
}
}
public interface CoffeeCup {
void makeCoffee();
}
public abstract class Coffee implements CoffeeCup {
protected CoffeeType coffeeType;
public Coffee(CoffeeType coffeeType) {
this.coffeeType = coffeeType;
}
}
public class LargeCoffee extends Coffee {
public LargeCoffee(CoffeeType coffeeType) {
super(coffeeType);
}
@Override
public void makeCoffee() {
System.out.println("制作一杯" + this.coffeeType.getCoffeeType() + "的大杯咖啡");
}
}
public class MediumCoffee extends Coffee {
public MediumCoffee(CoffeeType coffeeType) {
super(coffeeType);
}
@Override
public void makeCoffee() {
System.out.println("制作一杯" + this.coffeeType.getCoffeeType() + "的中杯咖啡");
}
}
public class SmallCoffee extends Coffee {
public SmallCoffee(CoffeeType coffeeType) {
super(coffeeType);
}
@Override
public void makeCoffee() {
System.out.println("制作一杯" + this.coffeeType.getCoffeeType() + "的小杯咖啡");
}
}
public class BridgeTest {
public static void main(String[] args) {
Coffee arabicaLarge = new LargeCoffee(new Arabica());
arabicaLarge.makeCoffee();
Coffee arabicaMedium = new MediumCoffee(new Arabica());
arabicaMedium.makeCoffee();
Coffee arabicaSmall = new SmallCoffee(new Arabica());
arabicaSmall.makeCoffee();
Coffee robustaLarge = new LargeCoffee(new Robusta());
robustaLarge.makeCoffee();
Coffee robustaMedium = new MediumCoffee(new Robusta());
robustaMedium.makeCoffee();
Coffee robustaSmall = new SmallCoffee(new Robusta());
robustaSmall.makeCoffee();
}
}
```
运行结果如下:
```
制作一杯阿拉比卡咖啡豆的大杯咖啡
制作一杯阿拉比卡咖啡豆的中杯咖啡
制作一杯阿拉比卡咖啡豆的小杯咖啡
制作一杯罗布斯塔咖啡豆的大杯咖啡
制作一杯罗布斯塔咖啡豆的中杯咖啡
制作一杯罗布斯塔咖啡豆的小杯咖啡
```
希望能够帮到你!
相关推荐















