OK, zurück zum Thema!
Ob du nun MVC, MVP, MVVM oder sonst irgendein Pattern für die Trennung zwischen UI und der Business-Logik anwendest, ist erst mal völlig egal.
Es ist auch egal, ob du irgendein Framework einsetzt oder alles zu Fuß machst. Frameworks helfen dir dabei wiederkehrende Arbeiten zu erleichtern. Man lernt sie meiner Meinung nach erst richtig schätzen, wenn man die Dinge eine Zeit lang manuell gemacht hat.
Ich habe ein kleines
MasterMind-Spiel geschrieben, bei dem der Spiel-Ablauf und dessen Logik vollständig von der Oberfläche getrennt sind:
https://github.com/Wosi/MasterMind
Die Architektur entspricht am ehesten den Model-View-Presenter (MVP) Pattern.
Der
Presenter steuert den Spiel-Ablauf und weist das View-Objekt an das Spielfeld neu zu zeichnen und auf den nächsten Versuch des Spielers zu warten etc. Das View-Objekt wird hinter einem Interface versteckt, sodass es egal ist ob es sich dabei um eine Form oder irgendetwas anderes handelt.
In dem Projekt gibt es drei unterschiedliche View-Implementierungen:
- Eine
Form
- Eine
Klasse für das Spiel auf der Konsole
- Ein
Mock, mit dessen Hilfe ich den
Presenter testen kann
Vielleicht hilft das dem einen oder anderen weiter.
P.S: Das sind jetzt alles Lazarus- bzw. FreePascal-Projekte aber für das Konzept ist das erstmal irrelevant.