在閱讀 Joshua Block 的《Effective Java Book》第 1 項關于使用工廠靜態方法而不是構造函數之后,我一直在研究這個問題。在文本中,他盡可能地為這種使用辯護,并列舉了實施Singleton或Flyweight標準的可能性以及其他理由。它還引用了該類的案例Boolean,該類通過以下方法明智地使用了FlyweightvalueOf (boolean):public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}我的問題是:我了解使用這些模式的優點,但無法在構造函數本身中實現?單獨使用它們并不能證明創建靜態工廠方法是合理的。
1 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
但不能在構造函數本身中實現?
否:new
根據規范,總是創建一個新實例(或失?。?,因此new Boolean(b)
總是返回一個新實例Boolean
。
Boolean.valueOf
返回一個預先存在的實例。這是可取的,因為只有兩個可能的值,因此沒有必要創建更多值。
添加回答
舉報
0/150
提交
取消