Hoi, Sorry Betreff ist mir kein besserer eingefallen.
Es geht um eine Monsterklasse zu vereinfachen. Zum Beispiel (real ist anders)
Delphi-Quellcode:
IMonster = interface
property ElementTyp: TTyp; //Kreis, Quadrat, etc.
property ElementFarbe: TColor;
property ElementGroesse: Double;
...
property ReferenzTyp: TTyp;
property ReferenzFarbe: TColor;
property ReferenzGroesse: Double;
...
Die implementiere Klasse hat da Getter die auf interne Daten zugreifen. Nun hätte ich das gerne so:
Delphi-Quellcode:
IElement=interface
property Typ: TTyp; //Kreis, Quadrat, etc.
property Farbe: TColor;
property Groesse: Double;
...
IMonster = interface
property Element: IElement;
property Referenz: IElement;
Damit könnte ich mir etliche Properties sparen.
Statt Monster.ReferenzFarbe schreibt man dann halt Monster.Referenz.Farbe.
Aber wie implementiert man das dann? Klar: TElement = class(TInterfacedObject, IElement). Aber dann muss diese Klasse ja noch TMonster kennen. Oder es bekommt die Daten bei der Erzeugung mit. Dann muss die Klasse aber jedesmal neu erzeugt werden oder es braucht eine Benachrichtigung wenn sich die Daten ändern.
Kann ich alles machen aber scheint mir recht aufwendig. (Nein - Datenhaltung in TElement kommt nicht in Frage)