在Effective Java,Item 1中,在本节结尾的静态工厂方法中,Joshua Bloch描述了静态工厂方法的通用名称。其中两个名称, Type 和new Type ,对我来说有点混乱。
引用[Bloch,p。 10]
getType - 与getInstance类似,但在工厂方法位于其他类时使用。 Type 表示工厂方法返回的对象类型。
newType - 与newInstance类似,但在工厂方法位于不同的类时使用。 Type 表示工厂方法返回的对象类型。
在不同的类中使用静态工厂方法的用例是什么?在Java API中是否有使用此模式的示例?
答案 0 :(得分:1)
在不同的类中使用静态工厂方法的用例是什么?
用例很简单,当你在不同的类中拥有静态工厂方法时。可以想象,您的代码可以通过这种方式进行组织,以使其更合适。 """""""用例,很大程度上取决于你的情况,要求和风格。
getType()
和newType()
不是字面意思;它们用于表示命名约定,如Something.newWidget()
或其他任何内容。
Java API中的一个例子是例如Channels
,在同一个类中组织多个相关的工厂方法是有意义的。在语义上,名为Channels.newInstance()
的方法确实没有多大意义,因为它没有实例化新的Channels
。
另一个例子是常用的Executors
。
通过浏览the 'n' section of the documentation index可以找到API中的更多示例(查找" new *")。
这些东西都不是真正的硬性和快速的具体规则,只是一般的指导方针和选项。 你需要做的就是你需要做的事情,确保你的代码清晰,简洁,可维护和灵活。所以,在设计和编写软件时,请致电。