10

拜托,你能解释一下为什么番石榴的创造者更喜欢将构造函数定义为私有的,并定义静态方法create()来创建对象吗?

4

1 回答 1

20

有效的 Java 项目 1:考虑静态工厂方法而不是构造函数。

静态工厂方法的一些优点包括:

  • 它们会自动推断 Java 7 之前的类型参数。
  • 它们允许我们控制继承模式:我们可以在 Guava 中对集合类型进行子类化,而无需让外部代码对它们进行子类化。
  • 它们让我们返回所需类型的任意子类,让我们更好地隐藏实现细节。
于 2012-11-03T17:17:08.263 回答