用建造者模式写一个咖啡厅点餐系统,用java
时间: 2023-09-14 14:06:10 浏览: 113
day02 工厂模式+原型模式+建造者模式
### 回答1:
使用建造者模式来构建一个咖啡厅点餐系统,首先需要定义一个OrderBuilder类,用于构建订单,这个类有一个build()方法,用于构建订单,还有一个addItem()方法,用来添加订单中的项目,还有一个getOrder()方法,用于获取构建的订单。然后,定义一个Waiter类,它负责接受用户的点餐请求,并将它们传递给OrderBuilder来构建订单,最后,定义一个Order类,它是一个容器,用于存储用户订单中的项目,最后,定义一个Main类,用于测试点餐系统的正确性。
### 回答2:
咖啡厅点餐系统使用建造者模式可以有效地构建复杂的订单,以下是使用Java语言实现的简单示例。
首先,我们需要定义订单对象Order,其中包含订单中的详细内容,例如咖啡类型、大小、配料等等。
```java
public class Order {
private String coffeeType;
private String size;
private List<String> toppings;
public Order(String coffeeType, String size, List<String> toppings) {
this.coffeeType = coffeeType;
this.size = size;
this.toppings = toppings;
}
public String getCoffeeType() {
return coffeeType;
}
public String getSize() {
return size;
}
public List<String> getToppings() {
return toppings;
}
}
```
接下来,我们需要创建订单的建造者,即OrderBuilder,该类负责设置不同的订单细节和选项。
```java
public class OrderBuilder {
private String coffeeType;
private String size;
private List<String> toppings;
public OrderBuilder setCoffeeType(String coffeeType) {
this.coffeeType = coffeeType;
return this;
}
public OrderBuilder setSize(String size) {
this.size = size;
return this;
}
public OrderBuilder setToppings(List<String> toppings) {
this.toppings = toppings;
return this;
}
public Order build() {
return new Order(coffeeType, size, toppings);
}
}
```
现在,我们可以使用OrderBuilder来创建自定义的订单。
```java
public class Main {
public static void main(String[] args) {
Order order1 = new OrderBuilder()
.setCoffeeType("拿铁")
.setSize("大杯")
.setToppings(Arrays.asList("糖浆", "奶泡"))
.build();
Order order2 = new OrderBuilder()
.setCoffeeType("美式咖啡")
.setSize("中杯")
.build();
System.out.println("Order1: " + order1.getCoffeeType() + ", " + order1.getSize() + ", " + order1.getToppings());
System.out.println("Order2: " + order2.getCoffeeType() + ", " + order2.getSize() + ", " + order2.getToppings());
}
}
```
在这个示例中,我们通过OrderBuilder分别创建了两个不同的订单,一个订单包含了咖啡类型、大小和配料,而另一个订单只有咖啡类型和大小。最后,我们打印出了这两个订单的详细内容。
使用建造者模式可以更容易地创建复杂的对象,同时保持灵活性和可读性。在咖啡厅点餐系统中,订单的建造者可以根据客户的需求定制不同的咖啡订单。
阅读全文