First page Back Continue Last page Overview Graphics

Standardoperationen


Notes:

Fowler schlägt vor, Standardoperationen für Attribute und Assoziationen einzuführen. Zwar macht die UML - wie bereits mehrfach erwähnt - keine Aussage darüber, wie eine Implementierung auszusehen hat, aber das hindert uns ja nicht daran, über eben diesen Aspekt ein wenig nachzudenken. Codegeneratoren automatisieren die folgenden Vorgänge übrigens weitestgehend.
Wann immer Sie ein Attribut in Ihrer Klasse verwenden, das Sie nach außen zeigen wollen, werden Sie eine Getter-Methode brauchen (es sei denn, was Gott abhüten möge, Sie verwenden public Attribute!). Ebenso werden Sie eine Setter-Methode brauchen, um den Attributswert zu verändern. Wo immer ein Attribut A vom Typ T also auftaucht (egal, ob es sich bei T um einen Primitivtyp oder einen Objekttyp handelt), sie können in Ihren Code die folgenden Routinen aufnehmen (hier z.B. Java):
public T gibA() {
return a;
}
public T setzeA (T inWert) {
a = inWert;
return a;
}
Dadurch wird das Attribut überhaupt erst von außen handlebar.
Für Assoziationen (bzw. auf Objektebene Verbindungen) gilt sinngemäß dasselbe, jedenfalls wenn sie nicht unspezifiziert sind (in welchem Fall sie sowieso nicht implementiert werden können). Die Operationen verbindeAss(B inB), B gibAss() sowie void löseAss(B inB) können unbesehen implementiert werden, sie werden praktisch immer benötigt werden.
Für die Klasse selbst sind noch die Standardoperationen erzeuge() und zerstöre() zu nennen, die ja ohnehin von praktisch jeder oo-Programmiersprache als Konstruktor bzw. Destruktor zur Verfügung gestellt werden.