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 |