In Ruby, quando si effettua una nuova classe, definiremo il metodo di costruzione in questo modo:Perché definiamo `# initialize` invece di` new` ::
class Thing
def initialize
do_stuff
end
end
Tuttavia, quando in realtà facendo un esempio di l'oggetto, ci troviamo non chiamando initialize
sull'istanza ma new
sulla classe.
Stando così le cose, perché non definiamo invece ::new
?
class Thing
def self.new
do_stuff
end
end
C'è qualcosa ::new
fa beind le scene che initalize
non definisce? Sono quei due completamente diversi? Definirebbe ::new
funzionare? O è solo che def initialize
è più corto (non) di def self.new
?
Sto pensando che ci deve essere una buona ragione per la disparità.
http: //blog.sidu.in/2007/12/rubys-new-as-factory.html –