gpt4 book ai didi

java - 为什么构建器模式使用 new 关键字,尽管它的构造函数是私有(private)的?

转载 作者:行者123 更新时间:2023-11-29 06:35:56 24 4
gpt4 key购买 nike

我看到代码 Java Builder Pattern .除了下面的代码,一切都很好:

public static void main(String[] args) {
NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8)
.calories(100).sodium(35).carbohydrate(27).build();
}

NutritionFacts 构造函数是私有(private)的,Builder 内部类是静态的。因此,我们可以使用 NutritionFacts.Builder 访问此类,但为什么它使用 new 关键字,如 new NutritionFacts.Builder(240, 8)

最佳答案

  • new NutritionFacts.Builder() 创建 Builder 类的新实例,而不是 NutritionFacts 因此 NutritionFacts 的构造函数是无关紧要的(它可以是私有(private)的、 protected 、公共(public)的、包级别的)
  • Builder 是在 NutritionFacts 中定义的静态类,因此您不需要 NutritionFacts 的实例来创建 的新实例>Builder 类和Builder 可以调用其顶级类(私有(private)、 protected 、公共(public)、包级)的任何构造函数

关于java - 为什么构建器模式使用 new 关键字,尽管它的构造函数是私有(private)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20728847/

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