Darauf passt das Factory-Pattern, d.h. eine Factory, bei der sich die Klassen z.B. selbst registrieren (z.B. in initialization der Units). Diese Factory kennt dann die Klassen und kann die auch erstellen, wenn du dort dann nach einer Klasse anfragst.
Ich hab mich jetzt etwas in das Thema eingelesen und werd's noch etwas tun, aber entweder hab ich noch nicht den richtigen Teil gefunden oder das verschiebt mein Problem nur...
Am Beispiel aus dem Internet:
Delphi-Quellcode:
if ASelector = 'Furniture' then
Result := TFurniture.Create
else if ASelector = 'Chair' then
Result := TChair.Create
else if ASelector = 'Cupboard' then
Result := TCupboard.Create
else if ASelector = 'Coffee Table' then
Result := TCoffeeTable.Create
else if ASelector = 'Kitchen Table' then
Result := TKitchenTable.Create
else if ASelector = 'Table' then
Result := TTable.Create
Dieser Teil wird ja bei der Factory sozusagen "ausgelagert", wobei jedoch die if-anweisungen bleiben. Problem beim Spiel wird's aber sein, dass ganz viele Objekte dazukommen werden und 100 if-Anweisungen unpraktisch wären. Mein Wunsch wär es ja jetzt das auf ein paar Zeilen zu reduzieren.
Wie gesagt, ich bin noch grad' am Lesen.