【发布时间】:2016-11-28 10:34:21
【问题描述】:
这与 Joshua Bloch 的“Effective Java”一书中的创建和销毁对象有关
第 1 项:考虑静态工厂方法而不是构造函数
此方法将布尔原始值转换为布尔对象引用:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
请注意,静态工厂方法与工厂方法不同 来自设计模式的方法模式 [Gamma95, p. 107]。静态的 此项中描述的工厂方法在 设计模式。
作者好像在说静态工厂方法和工厂方法模式的区别。这里到底有什么区别?
另外,BalusC 提到了in this thread,这是工厂方法下的一个链接,java.util.Calendar#getInstance() 这是一个静态工厂方法,因此表明静态工厂方法是工厂方法模式的一个子集。
【问题讨论】:
-
不太确定,但是这个静态工厂方法的实例不返回 new 实例。它用已经创建的相应对象“替换”原始值。所以说“它不完全是工厂方法”是正确的,但它有很大的相似之处。或者简而言之:如果您以这种方式定义静态工厂方法,即必须返回一个 new 实例,那么这不符合定义。
-
这里没有问题。
标签: java design-patterns factory factory-pattern