[C++] [Qt] Ein Beispiel mit dem MVC und Observer Design Pattern.
|
5 years ago | |
---|---|---|
LICENSE | 5 years ago | |
MVCObserverDemo.pro | 5 years ago | |
MVCObserverDemo.pro.user | 5 years ago | |
README.md | 5 years ago | |
main.cpp | 5 years ago | |
mainwindow.cpp | 5 years ago | |
mainwindow.h | 5 years ago | |
mainwindow.ui | 5 years ago | |
mainwindowcontroller.cpp | 5 years ago | |
mainwindowcontroller.h | 5 years ago | |
mainwindowmodel.cpp | 5 years ago | |
mainwindowmodel.h | 5 years ago |
Ein Beispiel mit dem MVC und Observer Design Pattern.
In diesem Beispiel Projekt habe ich eine einfache GUI mit Swing gebaut. Diese enthält zwei Elemente. Einmal ein JLabel und ein JButton. Die Interaktion des Benutzers sorgt dafür, dass sich der Wert des JLabels sich jeweils um 1 erhöht.
Zum Einsatz kamen gleich zwei Design Pattern. Zum einen das MVC, d.h. strikte Trennung von Logik und Ansicht, gesteuert durch den Controller und zum anderen das Observer Pattern, welche dafür sorgt, dass die View aktualsiert wird wenn sich der Wert im Model ändert.
Es gibt verschiedene Arten von MVC, welche man umsetzen kann. Dabei habe ich mich für folgendes Design entschieden, damit alle Komponenten von einander getrennt und somit jeder Zeit austauschbar sind. Dabei ist diese Umsetzung sogar unabhängig von einer grafischen Oberfläche und kann zum Beispiel in der Konsole ebenfalls benutzt werden.
Auch die Listener werden vom Controller verwaltet, denn diese haben die Aufgabe die Methoden im Model aufzurufen. Deshalb verwaltet die View nicht die Listener.
Bei diesem Beispiel Projekt wurde dabei auf die Vollständigkeit der Klassen (nach OOP Philosophie) sowie Sicherheit (richtiger Einsatz von Sichtbarkeitsmodifikatoren) geachtet. An dieser Stelle ist auch mein Programmierstil deutlich zu erkennen.
Ein Beispiel in Java mit Swing findest du hier: https://git.ray-works.de/Ray/JavaMVCObserverDemo