MFC Anwendung: Best Practices beim Applikationsdesign??
-
Hallo,
weiss jemand wo man nachlesen kann, wie eine MFC (Dialog)-Anwendung grundsätzlich aufgebaut sein sollte? ->Best Practices
Gelernt habe ich, dass man eine Applikation grundsätzlich in einen 'View', 'Processing' und 'Data' Teil aufteilen sollte.
Angenommen ich habe nun Zeit intensive Aufgaben in meiner Applikation zu erledigen.... dann sollten diese Operation eigentlich im 'processing' Teil erfolgen. Klar. Andererseits sollte man mittels 'View' den Benutzer über den aktuellen Verarbeitungszustand informieren...
Ist man im 'Processing', dann hat man eigentlich keinen Zugriff auf die View. Sofern man den objektorientierten Aspekt ernst nimmt. Oder doch? Wenn ja dann stellt sich die Frage wie? Ich habe bisher 5 Möglichkeiten 'gefunden':Man übergibt der Processingmethode das Control(z.B. Fortschrittsbalken) mit, welches innerhalb der View aktualisiert werden soll.
Man übergibt den this-Zeiger der gesamten View und kann dann auf beliebige Elemente zugreifen.
Man sucht sich innerhalb der Processing-Methode die View (z.B. mittels AfxGetApp() -> GetMainWnd() etc.)
Man kommuniziert mittels SendMessage(). Wobei diese Möglichkeit der OO aus meiner Sicht am Wenigsten entspricht.
- Man ruft die Processing-Methode mehrmals auf (Rekursion) und kann somit nach jedem Rückgabewert den Benutzer informieren (z.B. mittels fortschrittsbalken).
Gibt es noch weitere Möglicjkeiten und wie macht ihr das?
Ich übergebe meistens einfacherhalber den this-Zeiger.Danke für Hinweise und Kommentare
-
Wenn Du es nach "Lehrbuch" machen willst, dann verwende immer das "Model-View-Controller" prinzip...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpatterns/html/DesMVC.asp
-
Jochen Kalmbach schrieb:
Wenn Du es nach "Lehrbuch" machen willst, dann verwende immer das "Model-View-Controller" prinzip...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpatterns/html/DesMVC.asp
Nun ja. das MVC ist eigentlich jenes, welche ich als 'Processing-View-Data' Modell bezechnet habe. Stellt sich jetzt nur die Frage, mittels welcher 'Update-View' Technik die Viewaktualisierung stattfinden soll, hehe...
DDnake für die Links.
-
Diese Thema würde mich auch sehr interessieren. Das Model-View-Controller Prinzip
ist ja bekannt. Nur in der eigentlichen Umsetzung habe ich manchmal doch meine
Probleme. Gerade wie sky beschrieben hat, die Update Philosophie und die Datenkapslung
hat bei mir schon in wilder Verpointerung geendet, was mir wohl keiner mehr als OO abnehmen würde.
Sky kann ich empfehlen mal das Observer-Model anzuschauen. Ist bei manchen Problemen sehr hilfreich,
wenn es um das Updaten eines Views geht.
Wenn hier jemand Informationen in Form eines guten Vorlesungs Scriptes oder auch
nur eines guten Artikels hat, wäre ich sehr dankbar.Gruß charlie