【发布时间】:2014-03-19 12:50:40
【问题描述】:
我正在阅读工厂设计模式,并在其中一个链接上阅读了以下提到的事实。
{ 与各种不可变类一起使用的工厂模式,例如布尔值。 Boolean.valueOf() }
有了这个背景,有人能解释一下它是如何在布尔和其他不可变类中实现的吗?抱歉,如果我在这里遗漏了一件愚蠢的事情。
问候塔伦
【问题讨论】:
-
要查看如何您可以查看源代码。
我正在阅读工厂设计模式,并在其中一个链接上阅读了以下提到的事实。
{ 与各种不可变类一起使用的工厂模式,例如布尔值。 Boolean.valueOf() }
有了这个背景,有人能解释一下它是如何在布尔和其他不可变类中实现的吗?抱歉,如果我在这里遗漏了一件愚蠢的事情。
问候塔伦
【问题讨论】:
如果您看到以下两种方法:
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
public static Boolean valueOf(String s) {
return toBoolean(s) ? TRUE : FALSE;
}
这些是 Boolean 类的静态方法,并根据提供的参数 return Boolean 类型的对象。
因此,您不必创建 Boolean 对象,而是 Boolean 类本身会为您创建/返回(已创建)对象。因此工厂为您服务。
【讨论】:
它不会返回new Boolean(),而是检查参数并返回现有Boolean 对象之一,Boolean.TRUE 或Boolean.FALSE。
【讨论】: