在关于静态工厂方法的本节末尾的有效Java第1项中,约书亚·布洛赫描述了静态工厂方法的常用名称。其中两个名字,getType和newType,让我有点困惑。
Quote Bloch,第10页
类似getType的getInstance,但是当工厂方法在不同的类中时使用。类型表示由工厂方法返回的对象的类型。 类似newType的newInstance,但是当工厂方法在不同的类中时使用。类型表示由工厂方法返回的对象的类型。
在不同的类中使用静态工厂方法的用例是什么?在Java中有使用这种模式的示例吗?
发布于 2016-08-30 01:16:15
在不同的类中使用静态工厂方法的用例是什么?
用例很简单,嗯.当您在不同的类中获得静态工厂方法时。可以想象,您的代码可以以一种更合适的方式来组织。没有真正的“这个”用例,这在很大程度上取决于您的情况、需求和风格。
getType()和newType()并不是字面意义上的,它们是用来表示命名约定的,如Something.newWidget()或其他什么的。
Java中的一个例子是例如Channels,将多个相关的工厂方法组织在同一个类中是有意义的。从语义上讲,一个名为Channels.newInstance()的方法没有什么意义,因为它没有实例化一个新的Channels。
另一个例子是常用的Executors。
通过浏览文档索引的“n”部分 (查找“新*”),可以在API中找到更多的示例。
这些东西都不是硬性的和快速的具体规则,只是一般的指导方针和选择。您需要做的是确保代码清晰、简洁、可维护和灵活。所以你在设计和编写你的软件时会打电话。
https://stackoverflow.com/questions/39217359
复制相似问题