java 抽象工厂 例子
时间: 2023-05-31 09:07:04 浏览: 59
抽象工厂模式是一种创建型设计模式,它允许我们创建一组相关的对象,而无需指定它们的具体类。下面是一个简单的Java抽象工厂模式的例子。
假设我们有一个餐厅,它提供三种不同类型的菜肴:中餐、西餐和日本料理。每种菜肴都有自己的名称和价格。我们可以定义一个抽象工厂接口来创建这些不同类型的菜肴:
```java
public interface FoodFactory {
Food createFood(String name, double price);
}
```
然后,我们可以为每种类型的菜肴创建一个具体的工厂类。例如,中餐的工厂类可以如下所示:
```java
public class ChineseFoodFactory implements FoodFactory {
@Override
public Food createFood(String name, double price) {
return new ChineseFood(name, price);
}
}
```
其中,`ChineseFood`是一个具体的中餐类,它实现了`Food`接口:
```java
public class ChineseFood implements Food {
private String name;
private double price;
public ChineseFood(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public String getName() {
return name;
}
@Override
public double getPrice() {
return price;
}
}
```
同样,我们也可以为西餐和日本料理各创建一个具体的工厂类和对应的菜肴类。
最后,我们可以使用工厂模式来创建不同类型的菜肴。例如,要创建一份中式烤鸭,可以使用以下代码:
```java
FoodFactory factory = new ChineseFoodFactory();
Food food = factory.createFood("烤鸭", 88.0);
```
这样,我们就可以通过抽象工厂模式来创建不同类型的菜肴,而无需指定它们的具体类。