[Squeak-ev] Unterrichtsbeispiel OOP Jahrgang 12

Stefan Schmiedl s at xss.de
Mit Jan 21 20:10:45 UTC 2004


Klaus Füller (2004-01-21 11:34):

> Stefan Schmiedl schrieb:
> ...
> >
> >und was mir nachträglich noch eingefallen ist: Das wäre dann auch eine
> >prima Motivation für eine lazy initialization (wie heißt das denn auf
> >deutsch?) in der Lesemethode.
> >
> ...
> Wie könnte man hier eine _lazy initialization_ anwenden?.
> 
> kf
> 

Hallo Klaus,

ohne jetzt zu kontrollieren, ob das zum restlichen Ampelcode passt:

Morph subclass: #Ampel
        instanceVariableNames: 'zustand '
        classVariableNames: 'Farben'
        poolDictionaries: ''
        category: 'GCLS-Verkehr'

Ampel>>zeige
        self color: self farbe

Ampel>>farbe
        Farben ifNil: [Farben _ OrderedCollection new add: Color red;
                                                 add: Color orange;
                                                 add: Color green;
                                                 add: Color yellow;
                                                 add: Color blue;
                                                 yourself].
        ^ Farben at: zustand ifAbsent: []

Und vermutlich würde ich im richtigen Leben sogar noch die
Initialisierung in eine Klassenmethode packen, weil das im richtigen
Leben einer der typischen Kanidaten für Benutzereinstellungen ist.

Das Arbeiten mit (leicht übergebbaren) Zahlenwerten an Stelle von
(komplizierten stackbelastenden) Objekten ist für meine Nase ein Code-Smell
in Smalltalk.

Der Text in Klammern ist eine Reminiszenz an das Semester,
in dem ich einen C-Kurs belegt hatte und spiegelt keinesfalls meine
heutige Meinung wider :-)

s.

-- 
Stefan Schmiedl
+-------------------------------+----------------------------------------+
|Approximity GmbH               | EDV-Beratung Schmiedl                  |
|http://www.approximity.com     | Am Bräuweiher 4, 93499 Zandt, Germany  |
|mailto:stefan at approximity.com  | Tel. (09944) 3068-98, Fax -97          |
+-------------------------------+----------------------------------------+