透明组合模式水果盘案例
时间: 2024-10-22 08:13:15 浏览: 14
微信小程序实现水果转盘游戏
5星 · 资源好评率100%
透明组合模式,也称为开放封闭原则,是一种设计模式,它允许你在不修改已有类的情况下,动态地向系统中添加新的对象。在水果盘的场景中,我们可以想象成创建了一个基类`FruitBasket`,它代表了基本的容器,可以容纳各种水果。
```java
// 基类 FruitBasket
abstract class FruitBasket {
public abstract void add(Fruit fruit);
public abstract void remove(Fruit fruit);
public abstract List<Fruit> getFruits();
}
// 具体的组合类 ConcreteFruitBasket
class TransparentFruitBasket extends FruitBasket {
private List<Fruit> fruits = new ArrayList<>();
@Override
public void add(Fruit fruit) {
fruits.add(fruit);
}
@Override
public void remove(Fruit fruit) {
fruits.remove(fruit);
}
@Override
public List<Fruit> getFruits() {
return fruits;
}
}
```
然后,我们有具体的水果类如`Apple`, `Banana`等:
```java
class Apple implements Fruit {}
class Banana implements Fruit {}
```
用户现在可以根据需要创建透明的水果篮,例如:
```java
TransparentFruitBasket basket = new TransparentFruitBasket();
basket.add(new Apple());
basket.add(new Banana());
```
在这个模式下,如果以后需要添加更多类型的水果,比如`Pear`,我们只需要创建一个新的`ConcreteFruitBasket`子类,并实现`Fruit`接口即可,无需改动现有代码。这就是透明组合模式的灵活性和扩展性的体现。
阅读全文