gpt4 book ai didi

java - 构建器模式用于构造可以具有不同类型的类的实例

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:18 25 4
gpt4 key购买 nike

考虑来自维基百科的以下产品和 AbstractBuilder:

/** "Product" */
class Pizza {
private String dough = "";
private String sauce = "";
private String topping = "";

public void setDough(String dough) {
this.dough = dough;
}

public void setSauce(String sauce) {
this.sauce = sauce;
}

public void setTopping(String topping) {
this.topping = topping;
}
}

/** "Abstract Builder" */
abstract class PizzaBuilder {
protected Pizza pizza;

public Pizza getPizza() {
return pizza;
}

public void createNewPizzaProduct() {
pizza = new Pizza();
}

public abstract void buildDough();

public abstract void buildSauce();

public abstract void buildTopping();
}

如果您在 PizzaBuilder 类中看到方法 createNewPizzaProduct

如果 Pizza 实现了一个接口(interface),比如 Foo,并且必须实现一个方法 bar,那么 createNewPizzaProduct 方法将如何解释这一点,因为会有许多不同类型的 Pizza

在不违反模式的情况下,最优雅的解决方案是什么?这种模式对我来说是新的。

最佳答案

createNewPizzaProduct 不必关心 Pizza 类是否实现特定方法:它的唯一职责是实例化 Pizza。如果您问它将如何处理必须根据某些标准创建不同 Pizza 实现的可能性,那么您将需要研究工厂模式

关于java - 构建器模式用于构造可以具有不同类型的类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com