Und was genau meinst Du mit "... müsste man die Eigenschaft 'Ausstattung' jedes Mal casten ...", stehe grad auf dem Schlauch?
z.B.:
Delphi-Quellcode:
Var
car : TCar;
...
car := myCarContainer.GetCars(herstellerMercedes).First;
if (car.Ausstattung as TMercedesausstattung).Sitzheizung.Status=AufStufe2 then
CheckTemperature(my.Back.Lower);
...
habe ich konkrete Autoklassen, liefert 'GetCars' direkt den konkreten Typen, d.h. ich muss nirgens casten.
Delphi-Quellcode:
Var
mercedes : TMercedes;
...
mercedes := myCarContainer.GetCars<TMercedes>.First;
if mercedes.Ausstattung.Sitzheizung.Status=AufStufe2 then
CheckTemperature(my.Back.Lower);
Hier sind alle Typen konkret.
Grundsätzlich bevorzuge ich die 2.Möglichkeit (ohne Typecasting auskommen), wobei das nicht notwendigerweise 'pro Autoklasse' bedeutet, aber hier zufälligerweise so ist.