Einzelnen Beitrag anzeigen

Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Erweitern einer Klasse um eine Methode

  Alt 28. Jan 2006, 21:44
Danke erstmal für die Antworten, leider lösen beide Mein Problem nicht.

Das ganze ist etwas komplizierter.

@SirThornberry:
Wie ich ja schon geschrieben habe, habe ich das mit den callbacks so probiert, aber da tritt das Problem mit den Zugriffsberechtigungen auf.

@3_of_8

Ja, auch das hab ich bei einigen gemacht, das Problem ist, dass es sich um eine 3D Anwendung handelt, und es gibt dort relativ viele ähnliche Objekte, die dann allerdings alle eine andere Funktion übergeben haben sollen.

Man stelle sich das mal ganz grob so vor:

Ich habe eine Klasse Mensch.

Diese Klasse wird in meinem Programm oftmals instanziiert.
Daraus resultiert, dass viele Menschen in meiner Welt umherirren.
Damit diese Menschen nun aber nicht alle gleich sind, und nicht jeder gleich reagiert und gleich redet, wenn ich ihn anklicke, habe ich 3 Möglichkeiten um sie zu variieren:
1. Ich leite für jede einzelne Person die Mensch Klasse ab und verändere dort Methoden und Eigenschaften.
2. Ich ändere einfach beim instanziieren die übergebenen variabeln, um die Properties zu verändern.

Diese Beiden Vorgehensweisen haben beide Nachteile und Vorteile.
Die erste Methode hat den Nachteil, dass ich wirklich für jede einzelne Person in dem Programm eine neue Klasse anlegen muss, da blickt man dann als Programmierer ja gar nicht mehr durch.
Sie hat allerdings auch den Vorteil, dass ich sowohl Methoden, als auch eigenschaften frei anpassen kann um diese Person zu individualisieren.
Die 2. Methode hat den Vorteil, dass sie mit wenig aufwand verbunden ist, einfach die, an der Konstruktor übergebenen Variabeln ändern und fertig.
Sie hat den Nachteil, dass man die Verhaltensweisen und Eigenschaften nur sehr limitiert beeinflussen kann, esseidenn man überliegert jede Menge flags und hat innerhalb der Methode unendlich viele case- und if-abfragen.

Daher hatte ich gehofft man könnte das Ganze auf eine 3. Art Lösen, und zwar dem übergeben einer Methode.
Da aber zum Beispiel die Methode, die zum Antworten auf Fragen zuständig ist, auf Zustandsvariabeln, wie etwa den Gemütszustand reagieren muss, habe ich ein Problem.

Kann man das irgendwie deichseln?

Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat