Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Elegantere Lösung um in dieser Struktur eine zirkuläre referenz zu umgehen?

  Alt 17. Sep 2016, 06:43
Das Problem ist ja, die Kollision soll nur stattfinden wenn sich die Schlange bewegt. Dieses Problem wollte ich mithilfe eines TNotifyEvents in TSnake lösen.
Dieses Event würde immer dann feuern, wenn sich die Schlange bewegt, so könnte ich dann die Kollision in TSpielfeld starten.

Meine Frage ist: Hat jemand eine elegantere Lösung, oder ist diese Lösung so in Ordnung?
Das hört sich sehr sinnvoll an, ja.
TSnake und TFood sollten nichts von einander wissen, das ist nicht deren Aufgabe. Dein Spielfeld kann auf diese Informationen zugreifen und das ganze moderieren.

Egal wie du das verpackst, ob mit Events oder mit Interfaces, die Lösung wird immer vom Prinzip her so oder so ähnlich sein. Denn sobald du TSnake oder TFood etwas von dieser Funktionalität gibst, müssen sie Informationen über das Spielfeld und ihre Nachbarn bekommen, so dass die Kapselung aufgeweicht wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat