Zitat von
mkinzler:
Zitat:
Muss bei einer Aggregation die Komponente in der Klasse als Feld hinzugefügt werden? Man könnte doch die Komponente außerhalb der Klasse irgendwo deklarieren und im z.B. im FormCreate() createn?
Aggegation heisst ja Teil eines Ganzen und vom Ganzen abhängig.
Zitat:
Bei einer unidirektional Assoziation müssen dan gegenseitig die Komponenten als Feld hinzugefügt werden oder?
Nein, unidirektional heisst der eine kennt den anderen, der andere den einen aber nicht.
Z.B. der Normalfall beim Owner. Der Owner kennt sein Eigentum und gibt dieses bei seiner Freigabe mit frei. eine Komponente kennt im Normalfall seinen Owner ab nicht.
Bidirektional heisst, das ein Objekt weiss, wer sein Owner ist.
ja sollte bidirektional heißen.
Klasse 1:
Delphi-Quellcode:
TDaten= class
private
spielFeld: array [0..3,0..3] of string;
// function pruefeZeile(pZ:string,pZeile:integer):integer;
// function pruefeZeile(pZ:string,pZeile:integer):integer;
public
// procedure setzeFeld(pNr:integer,pAktSpieler:string):boolean;
// procedure pruefeGewonnen(pAktSpieler:string):boolean;
end;
Klasse 2:
Delphi-Quellcode:
type
TSteuerung= class
private
dieSpielNr:integer;
anzahlZuege:integer;
// procedure setzeAktSpieler(pAktSpieler:string);
// procedure erhoeheAnzZuege;
// procedure erstelleStatistik(pAktSpieler:string);
function ermittleSpieler(): string;
public
aktSpieler:string;
// procedure bearbeiteClick(pNr:integer);
// procedure bearbeiteTaste(pNr:integer);
procedure NeuesSpiel;
end;
sagen wir mal zwischen diesen Klassen soll eine bidirektionale assoziation bestehen. könnte jemand die felder ergänzen, die jetzt hinzukommen würden?