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.

13.2 Beispiel für die Verwendung des Model/View-Konzeptes 265<br />

Die Klasse “WerteErfassungModell”<br />

Um einem Erfassungsprozeß die jeweils erfaßten Daten zuordnen zu können, soll bei<br />

einer Instanziierung aus der Klasse “WerteErfassungModell” die Instanz-Variable<br />

“werteBag” als Bag instanziiert werden.<br />

Dazu vereinbaren wir innerhalb der Klasse “WerteErfassungModell” die Instanz-<br />

Methode “initialisierenBag” in der folgenden Form:<br />

initialisierenBag<br />

werteBag := Bag new<br />

Damit diese Methode bei jeder neuen Instanziierung von “WerteErfassungModell”<br />

ausgeführt wird, legen wir die folgende Klassen-Methode fest:<br />

new<br />

|var|<br />

var := super new.<br />

var initialisierenBag.<br />

∧ var<br />

Wir beabsichtigen, daß – wie bisher – jeder neu erfaßte Wert in der Instanz-Variablen<br />

“werteBag” einer Instanz der Klasse “WerteErfassungModell” gesammelt werden<br />

soll. Wegen der Datenkapselung läßt sich dies nicht mehr in der ursprünglichen Form<br />

– unter Einsatz der Basis-Methode “add:” – erreichen. Damit die erfaßten Werte<br />

durch Instanzen von Klassen, die keine Unterklassen von “WerteErfassungModell”<br />

sind, der Instanz-Variablen “werteBag” hinzugefügt werden können, vereinbaren<br />

wir innerhalb der Klasse “WerteErfassungModell” die folgende Instanz-Methode<br />

“hinzufuegenWert:”:<br />

hinzufuegenWert: aString<br />

werteBag add: aString<br />

Die ursprünglich innerhalb der Klasse “WerteErfassung” festgelegten Methoden<br />

(siehe Abschnitt 7.4) “anzeigenWerte”, “anzeigenDurchschnittswert”, “anzeigenMedianwert”,<br />

“anzeigenModuswert”, “bereitstellenWerte”, “durchschnitt”, “median”<br />

und “modus” übernehmen wir in unveränderter Form in die Klasse “WerteErfassungModell”.<br />

Da hierdurch alle Methoden zur Sicherung, Verwaltung und Auswertung in der<br />

Klasse “WerteErfassungModell” vereinbart sind, ist die zur Erstellung des Model-<br />

Teils erforderliche Programmierung durchgeführt.<br />

Die Klasse “WerteErfassungView” und deren Unterklassen<br />

Um den View-Teil zu programmieren, richten wir – als Pendant zu der zur Lösung<br />

von PROB-5 ursprünglich konzipierten Klasse “WerteErfassung” – die Klasse “WerteErfassungView”<br />

als direkte Unterklasse der Basis-Klasse “ViewManager” und unterhalb<br />

von “WerteErfassungView” die Klassen “NoWerteErfassungView”, “OrWerteErfassungView”<br />

sowie “InWerteErfassungView” – in dieser Reihenfolge – ein.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!