Ich glaube nicht, dass es eine einzigartige Lösung gibt, da viele Überlegungen von dem jeweiligen Problem herrühren.
Sie können das Model View Controller-Muster verwenden: Dadurch wird Ihr Problem auf "Implementieren eines Verhaltens auf dem Controller" beschränkt, ein Verhalten, das immer den Regeln folgt.
Wenn es sich nicht um sehr einfache Regeln handelt, ist die Art und Weise, wie Sie sie organisieren, ein Problem der Ausdruckskraft . Sie sehen sich immer wieder den widersprüchlichen Anforderungen gegenüber, einfach (strukturiert) und ausdrucksstark zu sein (Spaßregeln schreiben).
Die Verwendung der MVC vereinfacht Ihre Arbeit, da das Modell einen Status formalisiert, dh den Kontext, in dem die Regeln durchgesetzt werden.
Sagte , dass, Sie finden es sinnvoll , die Steuerung mit dem zur Umsetzung Strategiemuster und / oder die Zustandsmuster , um ein komplexes Verhalten in Bezug auf den einfacheren schaltbaren Verhaltensweisen zu komponieren. Ein Verantwortungskettenmuster kann Ihnen dabei helfen, Regeln auszudrücken, während eine Zustandsmaschine sorgfältig verwendet werden sollte, da ihr "Zustand" teilweise die Bedeutung des Modells von "Zustand" überlappt.
Verwenden des Befehlsmuster innerhalb des Controllers sein nützlich kann auf beide Controller - resposiblities reduzieren (der Befehl wissen , wie mit dem Modell zu tun) und machen es einfach , die hinzuzufügen Undo / Redo - Funktionen im Controller.
In jedem Fall sollten Sie versuchen, die Entwurfsmuster als Richtlinie zu verwenden: Sie sind nützlich, um zu vermeiden, dass das Rad, insbesondere das Vierkantrad, neu erfunden wird, aber nicht jede Problemlösung besteht aus einem Bündel von (runden) Rädern, die zusammengefügt werden.