03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

180 9 Einrichtung und Verarbeitung von Sammlern<br />

9.3.2 Die Basis-Klasse “Set”<br />

Muß bei einer Sammlung von Objekten sichergestellt werden, daß kein Objekt mehrfach<br />

auftritt, ist der Einsatz eines Bags nicht geeignet. In dieser Situation besteht<br />

die Möglichkeit, eine Instanziierung der Basis-Klasse “Set” durchzuführen.<br />

ˆ Unter einem Set wird eine Sammlung von Objekten verstanden, die bis auf<br />

die Ausnahme, daß gesammelte Objekte nicht mehrfach auftreten dürfen, die<br />

Eigenschaften eines Bags besitzt.<br />

Genau wie in der Klasse “Bag” sind innerhalb der Klasse “Set” Methoden – wie z.B.<br />

“add:”, “size”, “remove:”, “do:” und “collect:” – festgelegt, mit denen sich die Eigenschaften<br />

von Instanzen der Klasse “Set” prüfen, ändern oder iterativ bearbeiten<br />

lassen.<br />

Wichtig sind die in der Klasse “Collection” vereinbarten Methoden, mit denen der<br />

Inhalt eines Sammlers in einen anderen Sammler übertragen werden kann.<br />

Sollen z.B. mehrfach auftretende Objekte eines Bags entfernt werden, so ist zunächst<br />

– durch die Basis-Methode “asSet” – der Inhalt eines Bags in ein Set zu übernehmen.<br />

Anschließend sind die resultierenden Objekte – durch die Basis-Methode “asBag”<br />

– wiederum als Inhalt eines Bags bereitzustellen.<br />

ˆ “asSet”:<br />

Das Ergebnis-Objekt der Message “asSet” ist ein Set, dessen Inhalt aus den<br />

Objekten desjenigen Sammlers aufgebaut wird, der als Empfänger-Objekt der<br />

Message “asSet” aufgeführt ist. Dabei werden mehrfach auftretende Objekte<br />

nur in einfacher Ausführung übernommen.<br />

ˆ “asBag”:<br />

Das Ergebnis-Objekt der Message “asBag” ist ein Bag, dessen Inhalt aus den<br />

Objekten desjenigen Sammlers aufgebaut wird, der als Empfänger-Objekt der<br />

Message “asBag” aufgeführt ist.<br />

Hinweis: Beim Einsatz dieser Messages ist zu beachten, daß das ursprüngliche Empfänger-<br />

Objekt erhalten bleibt.<br />

Ist z.B. “VarBag” als Bag eingerichtet worden, so lassen sich durch die Anforderung<br />

VarBag := VarBag asSet asBag<br />

sämtliche mehrfach auftretenden Objekte entfernen.<br />

Hinweis: Wird anstelle dieser Zuweisung allein die Anforderung<br />

VarBag asSet asBag<br />

ausgeführt, so bleibt das Empfänger-Objekt “VarBag” in seiner ursprünglichen Form erhalten.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!