27.4 Erste Versionen der Fachklassen
Kreis und Quadrat |
|
Eigenschaften und Operationen des Quadrats | Wir legen
die Eigenschaften des Quadrates fest. Es hat einen Mittelpunkt (x und
y-Werte des Schnittpunkts seiner Diagonalen), eine Seitenlänge und Farbe.
Beim Erzeugen einer Instanz von Quadrat soll es bereits einen definierten
Mittelpunkt, eine festgelegte Seitenlänge und eine bestimmte Farbe haben.
Methoden sollen zur Verfügung stehen, den Mittelpunkt, die Seitenlänge,
und die Farbe neu zu setzen. Seine Farbe und seine Seite sollen zusätzlich abfragbar sein. Und
schließlich soll das Quadrat selbst wissen, wie es zu zeichnen ist. Mit
diesen Vorgaben ist sehr schnell die Klasse in UML festgelegt. |
UML-Quadrat |
|
Eigenschaften und Operationen des Kreises | Die Eigenschaften, also ihre Attribute und ihre Operationen, also ihre Methoden sind denen des Quadrates sehr ähnlich. |
Wir markieren die Attribute und Methoden, die beide gemeinsam haben |
|
|
|
Faktorisieren | Die
gemeinsamen Attribute und Methoden sind farblich markiert.
Angenommen, wir wollten etwas in
unserer Klasse Quadrat
ändern, z.B. dass wir für die Koordinaten
xMitte
und yMitte
statt des Typs
int den Typ
double
verwenden wollen, dann müssen wir nämlich garantieren, dass in der Klasse
Kreis
die gleichen Veränderungen vorgenommen werden, will man die gemeinsame
Struktur von Kreis
und Quadrat
nicht aufgeben. Man sieht leicht ein, dass hier sich eine Quelle für
Inkonsistenzen auftut, was tunlichst zu vermeiden ist. Es bietet sich an,
die gemeinsamen Attribute und Methoden zu faktorisieren, d.h. in eine
gemeinsame Oberklasse von Kreis
und Quadrat
zu verlegen. Etwas vorsichtig müssen wir dabei mit den Methoden
zeichne(Graphics g)
in
Kreis
und Quadrat
sein. Zwar stimmen sie in Name und Signatur überein, aber ihre
Funktionalitäten sind sicherlich verschieden. Einen Kreis zeichnen ist
etwas anderes als ein Quadrat zeichnen. |
zu | 27.5 Kreis und Quadrat erben von der abstrakten Klasse Figur |
zur Startseite | www.pohlig.de (C) MPohlig 2004 |