Ich verstehe MVC-Muster gut genug, aber es gibt überraschend geringe Menge an Informationen für die praktische Umsetzung in C++. Für diese Anwendung verwende ich wxWidgets
und boost::depedency_injection
, aber die Situation sollte generisch sein.Objektbesitz in C++ (MVC-Muster)
In C++ 11/14 haben wir strenge Regeln für Objektbesitz: Objekt ist entweder über Eigentümer verteilt oder einzigartig für einen Besitzer. Wir haben auch Zeiger im alten Stil für Objekte, die nicht im Besitz von callee sind.
Also, die Frage ist: Wer besitzt welches Objekt (Modell/View/Controller) in MVC in C++?
Meine Vermutung jetzt:
Views
besitzt controllers
die von boost:di
als unqiue_ptr
injiziert werden. Controllers
sind im Besitz von views
und tun nicht speichern Zustand in jeder Form (nur Verfahren, die auf models
Katalog ausgeführt wird). führen und liefern Daten zu speichern, für controllers
Operationen
Ist es richtig, für MVC Models
selbst über die Injektion sie als shared_ptr
zwischen allen controllers
geteilt und werden verwendet?
Warum abstimmen, um zu schließen? – PiotrK
Nun, es gibt so viele MVC-Varianten, dass es schwer zu beantworten ist. Aber nein, Controller gehören nicht Ansichten, es sollte das Gegenteil sein, denn Controller ist die funktionale Brücke zwischen Ansicht und Modell. Model ist an Ansichten angehängt, somit kann Views Model besitzen. Dies kann Ihnen http://stackoverflow.com/questions/6929957/mvc-approach-with-c helfen. –
@ Jean-BaptisteYunès Ich habe diese Frage und Antwort bereits gelesen, aber es ist nur eine Theorie von MVC. Und ich frage nach implementierungsspezifischen Problem – PiotrK