建造者模式案例java内部类
时间: 2024-08-05 14:01:19 浏览: 56
建造者模式是一种设计模式,它提供了一种创建复杂对象的方式,使得客户端无需了解其实现细节。在Java中,内部类经常被用来实现建造者模式。下面是一个简单的例子:
```java
// 定义产品接口
interface Pizza {
String getName();
}
// 创建具体的构建者类
class PizzaBuilder {
private Size size;
private Topping[] toppings;
// 使用内部类创建具体的构建步骤
class Step1 implements Pizza {
@Override
public String getName() {
return "基础披萨";
}
}
class Step2 extends Step1 {
private boolean isCheeseAdded = true;
// 添加额外功能
@Override
public String getName() {
if (isCheeseAdded) {
return "芝士披萨";
} else {
return super.getName();
}
}
}
// 构建过程
public void setSize(Size size) {
this.size = size;
}
public void addTopping(Topping... toppings) {
this.toppings = toppings;
}
// 返回最终的产品
public Pizza build() {
// 这里可以添加更多的构造步骤
return new Step2(size, toppings);
}
}
// 客户端代码
public static void main(String[] args) {
Pizza pizza = new PizzaBuilder().setSize(Size.LARGE).addTopping(Topping.MARINARA).build();
System.out.println(pizza.getName()); // 输出"芝士大披萨"
}
```
在这个例子中,`PizzaBuilder`类是外部类,它的`Step1`和`Step2`是内部类,分别代表了披萨的不同构建阶段。客户端只需要通过`PizzaBuilder`提供的方法逐步添加披萨的规格和配料,最后得到的是完整的`Pizza`对象。
阅读全文