在Ruby中,做一個新的類時,我們將定義構造函數方法如下所示:爲什麼我們定義`#initialize`,而不是`:: new`
class Thing
def initialize
do_stuff
end
end
然而,在實際製作的實例對象,我們發現我們自己不在實例上調用initialize
,而在類上調用new
。
既然如此,爲什麼我們不定義::new
?
class Thing
def self.new
do_stuff
end
end
有什麼::new
確實beind的場面initalize
沒有定義?這兩個不同?將定義::new
工作?還是僅僅是def initialize
比def self.new
更短?
我在想這個差距一定是有原因的。
http://blog.sidu。in/2007/12/rubys-new-as-factory.html –