gpt4 book ai didi

java - 在简单工厂设计模式(Head-First)中传递工厂对象的目的?

转载 作者:行者123 更新时间:2023-11-29 07:27:59 26 4
gpt4 key购买 nike

我来自 C++ 背景,最近开始学习设计模式。

我在使用 Head First Design Patterns 中的这段代码时遇到了问题:

链接:PizzaStore.java

public class PizzaStore {
SimplePizzaFactory factory;

public PizzaStore(SimplePizzaFactory factory) {
this.factory = factory;
}

public Pizza orderPizza(String type) {
Pizza pizza;

pizza = factory.createPizza(type);

pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();

return pizza;
}
}

请帮我解决以下疑惑:

在 PizzaStore 类的构造函数中传递工厂对象有什么意义?

  • PizzaStore 类已经包含一个 SimplePizzaFactory 对象
  • 传递的对象未使用任何数据初始化(需要由 PizzaStore Constructor 复制):

    public PizzaStore(SimplePizzaFactory factory) { 
    this.factory = factory;

谢谢

最佳答案

PizzaStore class already contains a SimplePizzaFactory object

嗯,PizzaStore 有一个类型为 SimplePizzaFactory 的未初始化属性。在 PizzaStore 构造函数中,该属性是使用对构造函数参数的引用初始化的。这是 Java 代码中的常见模式。

The passed-on object is not initialized with any data (which needs to be copied by PizzaStore Constructor)

无需在构造函数中添加初始化代码,假设SimplePizzaFactory已经初始化。该工厂未被复制,由 PizzaStore 属性引用,因此 PizzaStore 内部的工厂在执行构造函数后是一个已经初始化的对象。

关于java - 在简单工厂设计模式(Head-First)中传递工厂对象的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534853/

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