Re: Fragen zum Konstruktordesign.

[email protected] Thu, 3 Apr 2003 12:54:57 +0100
Newsgroups gmane.comp.lang.ruby.german
Message-ID <[email protected]>
Hallo Mauricio.
Danke fuer Deine schnelle Antwort.

Deine erste Loesung gefaellt mir am besten. Allerdings habe ich noch ne Frage.
Wenn ich das richtig verstehe, dann ist init private. init duerfte ich doch 
dann nur aus Foo aufrufen. Bei meinem Design warf ruby mir einen Fehler um 
die Ohren, dass ich doch bitte nicht eine private Methode aufrufen soll.

Muss ich die Klassen Methoden mit "class << self"-Trick schreiben, oder liegt 
das an send? Beides kann ich mir nicht recht vorstellen. Warum geht es aber 
trozdem? 

Am Freitag, 28. März 2003 11:02 schrieb Mauricio Fernández:
> batsman@tux-chan:/tmp$ expand -t 2 x.rb
> class Foo
>   def initialize(*data)
>     #...
>   end
>
>   def init(schluessel)
>     @schluessel = schluessel
>   end
>
>   private :init
>
>   class << self
>     def load(irgendetwas)
>       obj = Foo.new
>       #...
>       obj.send(:init, irgendetwas)
>       obj
>     end
>   end
> end
>
> foo = Foo.new
> foo2 = Foo.load("schluessel")
> p foo, foo2
> batsman@tux-chan:/tmp$ ruby x.rb
> #<Foo:0x401a2988>
> #<Foo:0x401a28d4 @schluessel="schluessel">

Nochmals Danke. 

Ciao
	Otto