静态工厂方法getType& newType示例

时间:2016-08-30 01:06:47

标签: java static-methods effective-java

在Effective Java,Item 1中,在本节结尾的静态工厂方法中,Joshua Bloch描述了静态工厂方法的通用名称。其中两个名称, Type 和new Type ,对我来说有点混乱。

引用[Bloch,p。 10]

  

getType - 与getInstance类似,但在工厂方法位于其他类时使用。 Type 表示工厂方法返回的对象类型。

     

newType - 与newInstance类似,但在工厂方法位于不同的类时使用。 Type 表示工厂方法返回的对象类型。

在不同的类中使用静态工厂方法的用例是什么?在Java API中是否有使用此模式的示例?

1 个答案:

答案 0 :(得分:1)

  

在不同的类中使用静态工厂方法的用例是什么?

用例很简单,当你在不同的类中拥有静态工厂方法时。可以想象,您的代码可以通过这种方式进行组织,以使其更合适。 """""""用例,很大程度上取决于你的情况,要求和风格。

getType()newType()不是字面意思;它们用于表示命名约定,如Something.newWidget()或其他任何内容。

Java API中的一个例子是例如Channels,在同一个类中组织多个相关的工厂方法是有意义的。在语义上,名为Channels.newInstance()的方法确实没有多大意义,因为它没有实例化新的Channels

另一个例子是常用的Executors

通过浏览the 'n' section of the documentation index可以找到API中的更多示例(查找" new *")。

这些东西都不是真正的硬性和快速的具体规则,只是一般的指导方针和选项。 需要做的就是你需要做的事情,确保你的代码清晰,简洁,可维护和灵活。所以,在设计和编写软件时,请致电。