Ich versuche, das Strategie-Muster und kam mit dem folgenden Beispiel grok:Wie entfernt man die zirkuläre Abhängigkeit von dieser Verwendung des Strategie-Patterns?
- ich neue Spiele auf Schach-basierte erstellen möchten, außer mit Stücken, die anders bewegen.
- Ich möchte auch das Strategie-Muster verwenden, um Verhaltensweisen (wie sie sich bewegen können) in die Stücke zu injizieren.
Aber wenn wir Board
, Piece
und MoveBehavior
Objekte
Board
->Piece
weil einBoard
enthältPiece
sPiece
->Board
weil ein Stück in derBoard
passieren muss als ein Parameter zuMoveBehavior
, die diebenötigtzu entscheiden, welche Bewegungen akzeptabel sind.
Wie können wir diese zirkulären Abhängigkeit loszuwerden? Ist das nicht auch ein häufiges Problem in realistischeren Beispielen, weil Verhaltensweisen groß genug sind, um Entscheidungen treffen zu können? Ich denke, wenn das Verhalten super einfach ist, ist es nicht so wichtig, das Strategie-Muster nicht zu verwenden.