Problem Unterstützung der Zwei-Wege-Syntax in Ruby

9

Ich habe eine Situation, in der ich so etwas nennen muss:

%Vor%

Arbeiterklasse

%Vor%

Ich kann so etwas sehr gut machen

%Vor%

Aber ich muss dasselbe tun, was ich oben getan habe, wie das Folgende. Davor muss ich die Initialisierungsmethode von Office ändern, um die Methode def <<(worker) der Worker-Instanz zu starten.

%Vor%

Jetzt ist das Problem, die spätere Implementierung erstellt 2 Instanzen des Arbeiters ??

    
Manish Das 06.06.2011, 05:58
quelle

2 Antworten

1

Ich bin mir nicht ganz sicher, aber ich nehme an, Sie möchten das haben:

%Vor%

Ende

Auf diese Weise können Sie Worker#<< vollständig entfernen und auch die Zeile

entfernen %Vor%

in Worker#initialize , da office.workers ein Array sein soll. Es ist eine schlechte Idee, den Typ eines Attributs (Duck-Typing OK) vor und zurück zu ändern, da es wahrscheinlich ist, dass Sie den aktuellen Status verlieren und früher oder später Fehler auftreten.

Um "Getrennte Trennung" zu folgen, würde ich empfehlen, die gesamte Verwaltung von workers ausschließlich in Office durchzuführen, sonst wird es zu schnell zu verwirrend und auf lange Sicht viel schwieriger zu pflegen.

    
emboss 07.07.2011 09:16
quelle
0

Ich bin mir nicht 100% sicher, warum Sie hier keinen Fehler bekommen, aber da die letzte Zeile von Office # Worker ist, ist self.workers & lt; & lt; Arbeiter, Sie fügen den neuen Arbeiter hinzu, der in Office # Worker erstellt wurde (in der dritten Zeile der Methode), und geben dann das Worker-Objekt zurück, das dann # & lt; & lt; erneut mit dem neuen Mitarbeiter aufgerufen, der außerhalb der Methode

erstellt wurde     
Jim Deville 06.06.2011 06:16
quelle

Tags und Links