Best Practice Events für jeden, oder für die Allgemeinheit "registrieren"?

  • Themenstarter Themenstarter mickedplay
  • Beginndatum Beginndatum
M

mickedplay

Gast
Hallöle,

und zwar habe ich in einem Spiel eine unbekannt Anzahl an Spielern.
Nun gibt es verschiedene Events, die ausgerufen werden, sofern ein Spieler etwas bestimmtes tut.
Da jeder Spieler noch erweiterte Dinge besitzt, habe ich für jeden Spieler ein neues Objekt bzw. eine Klasse, die sich auf die Spieler einstimmt, erstellt (Jeder Spieler besitzt im Grundkern die gleichen Funktionen; mit "eingestimmter Klasse" meine ich, dass jeder Spieler noch zusätzliche Daten wie z. B. Statistiken (die sind ja bei jedem anders) beinhaltet)

Ist es nun performanter bzw. besser, wenn ich in einer Methode den Spieler, der das Event aufgerufen hat nutze, oder das Event für jeden Spieler in dessen Objekt (siehe oben) "registriere"?

Also ich hoffe, ihr versteht, was ich meine.
Was meint ihr?
 
da passt doch das Observer Pattern wie die Faust aufs Auge
Ja gut, aber wie soll mir das überhaupt helfen?
Im Nachhinein hab ich mir überlegt, dass es eigentlich quasi in einer eigenen Event-Klasse besser aufgehoben wäre, da ich - sollte es im Spieler-Objekt stehen - eh auf den Auslösenden vom Event draus zugreife.
Andernfalls würde es mir das Abrufen einiger Werte jedoch ne Menge erleichtern.
 
In dem das du das Observer Pattern anschaust und implementierst. So wie du beschrieben hast, ist es das was du suchst.

Ansonsten musst du wohl ein bisschen konkreter werden als "Spieler-Objekt","Event" und "einiger Werte"
 
Unter dem Spieler-Objekt meine ich einen Spieler, der mehr Funktionen hat, wie eine normale Spieler-Instanz.

Ein Beispiel für Event (als Beispiel Mensch ärgere dich nicht):
Ein Event wird aufgerufen, wenn der Spieler:
- würfelt
- eine Figur weiterzieht
- eine Figur auf ein Endfeld setzt
...
 
thecain hat schon recht. Das Observer Pattern sollte hier super reinpassen.

Ein Objekt der Klasse X empfängt das Event, verarbeitet es und benachrichtigt alle Observer darüber das etwas passiert ist. Jeder dieser Observer kann nun ebenfalls darauf reagieren.
(Observer sind in diesem Fall deine Spieler)
 

Neue Themen


Zurück
Oben