Hallo,
Ich erstelle gerade das Konzept für ein Projekt und habe gleich eine Frage:
Kann ich die Klasse eines Objekts zur Laufzeit ändern?
Kontext:
Ich habe drei Typen Agenten. Rote, Blaue und Grüne. Jede Farbe verhält sich anders, aber Agenten können die Seiten wechseln. Ich habe mir überlegt, eine abstrakte Oberklasse zu entwerfen. Somit kann ich einige Dinge vereinfachen und das Programm erweiterbar halten. Andere Entwickler sollen eigene Agenten entwerfen und problemlos einfügen können.
Zur Beginn werden alle Agenten bei einem Organizer angemeldet. Dieser plant wann welcher Agent etwas tut. Ich halte es daher für schwierig (nicht unmöglich), ein Objekt einfach zu löschen und durch ein anderes zu ersetzen.
Kann ich einen roten Agenten zur Laufzeit in einen grünen Umwandeln?
Alle Agenten verfügen über die Methode action. In der werden alle Sachen programmiert, die ein Agent tut, wenn er dran ist. Ziel ist, dass ein Agent nach seiner Änderung auch den Inhalt der Methode der anderen Farbe ausführt.
Alternativ kann ich über Booleans steuern. Dann nehme ich mir aber Flexibilität weg. Und wenn viele weitere Parteien dazukommen, wird das ein Chaos aus IF-Abfragen. If(blau) .. if(rot) .. if(grün) .. if(weiß) .. if(rosarot) ..
Mfg
Ich erstelle gerade das Konzept für ein Projekt und habe gleich eine Frage:
Kann ich die Klasse eines Objekts zur Laufzeit ändern?
Kontext:
Ich habe drei Typen Agenten. Rote, Blaue und Grüne. Jede Farbe verhält sich anders, aber Agenten können die Seiten wechseln. Ich habe mir überlegt, eine abstrakte Oberklasse zu entwerfen. Somit kann ich einige Dinge vereinfachen und das Programm erweiterbar halten. Andere Entwickler sollen eigene Agenten entwerfen und problemlos einfügen können.
Zur Beginn werden alle Agenten bei einem Organizer angemeldet. Dieser plant wann welcher Agent etwas tut. Ich halte es daher für schwierig (nicht unmöglich), ein Objekt einfach zu löschen und durch ein anderes zu ersetzen.
Kann ich einen roten Agenten zur Laufzeit in einen grünen Umwandeln?
Alle Agenten verfügen über die Methode action. In der werden alle Sachen programmiert, die ein Agent tut, wenn er dran ist. Ziel ist, dass ein Agent nach seiner Änderung auch den Inhalt der Methode der anderen Farbe ausführt.
Alternativ kann ich über Booleans steuern. Dann nehme ich mir aber Flexibilität weg. Und wenn viele weitere Parteien dazukommen, wird das ein Chaos aus IF-Abfragen. If(blau) .. if(rot) .. if(grün) .. if(weiß) .. if(rosarot) ..
Mfg