guava:为什么方法create()而不是构造函数?

时间:2012-11-03 17:02:23

标签: java constructor guava static-methods

请解释为什么guava的创建者更喜欢将构造函数定义为private,并定义静态方法create()来创建对象?

1 个答案:

答案 0 :(得分:19)

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

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

  • 他们自动推断Java 7之前的类型参数。
  • 它们允许我们控制继承模式:我们可以在Guava中继承集合类型,而不需要让外部代码将它们子类化。
  • 他们让我们返回所需类型的任意子类,让我们更好地隐藏实现细节。