我阅读过工厂设计模式,看到一些文章中提到的 Package 类(如Integer和Boolean)使用valueof
方法,该方法返回工厂创建的对象,该对象相当于传递的参数值。
当我检查代码时,我看到了下面的代码。我无法理解工厂模式是如何在 Package 类中实现的。
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
1条答案
按热度按时间deikduxw1#
这是在
Integer
类中实现的工厂模式。在查看它时,您会注意到它有3个不同的实现,根据参数类型创建Integer
。factory pattern是一个创建模式。此外,在
Integer
类的情况下,使用了Effective Java一书中推荐的另一种模式static constructor。