第57章

之間有什麼區別小A:“單體模式和一個所有方法都是靜態的工具類之間有什麼區別?”

大B:“1、當一個Class被Load的時候,靜態工具類的所有狀態都已經被初始化了,而單體模式則可以控制自己的初始化過程2、單體可以繼承別的類或被別的類繼承,而靜態工具類則不能(其實也能,但一旦繼承了一個有非靜態方法或靜態值的類以後,它就無法保證自己只擁有一個實例,或達到只有一個實例的效果)3、單體可以被擴展到‘雙體’,‘三體’,等等。但靜態工具類則喪失了這種可擴展性。一般的無狀態工具集合適合實現成靜態工具類,而擁有豐富狀態,但整個系統只允許有一個實例的類,適合實現成單體。”