Die folgenden Überlegungen beziehen sich auf das Projekt BuntTurtleBaum des Programmdownloads. In der Unit UBuntTurtleBaum wird die Formularklasse TFormBuntBaum folgendermaßen deklariert:
type
TFormBuntBaum = class(TForm)
BtZeichne: TButton;
Label1: TLabel;
Label2: TLabel;
EdStamm: TEdit;
EdEbenen: TEdit;
procedure BtZeichneClick(Sender: TObject);
private
h_turtle : TBuntTurtle;
procedure baum(length:Real; Ebene:Integer);
end;
|
Aus dem Quelltext wird deutlich, dass das Hauptformular des Projektes eine BuntTurtle, einen Butten, zwei Labels und zwei Edit-Komponenten verwaltet. Wir können das Formular also in mehrere Teile zerlegen. Daher der Begriff Zerlegung.
Betrachten wir im Quelltext die einzige Ereignismethode
procedure TFormBuntBaum.BtZeichneClick(Sender: TObject);
begin
h_turtle := TBuntTurtle.createturtle(width DIV 2,height - 50 ,90,
true,self.Canvas);
self.canvas.rectangle(0,50,width,height);
baum(StrToFloat(EdStamm.text),StrToInt(EdEbenen.text));
h_turtle.free
end;
|
so stellen wir fest, dass das Formular nicht nur eine BuntTurtle - mit dem Namen h-turtle - hat, sondern diese auch erzeugt und wieder löscht. Dies ist das typische Merkmal einer Zerlegung oder HAT-Beziehung
Wir sagen: ein Objekt A HAT ein Objekt B, wenn es für die Erzeugung, Verwaltung und für das Löschen des Objektes B verantwortlich ist.
Die HAT-Beziehung wird durch einen Pfeil dargestellt. Hat ein Objekt A die Objekte B, C und D, wird das folgendermaßen dargestellt:
Für unsere Formularklasse TFormBuntBaum und die Klasse TBuntTurtle sieht das Klassendiagramm einschliesslich Vererbung also folgendermaßen aus:
| Zur
nächsten Seite |
| © 2000 LK 12 If und G. Kubitz | Hannah-Arendt-Gymnasium, Lengerich |