Ist es möglich, das Model-View-Controller-Muster in Java für Android zu implementieren?
Oder ist sie bereits durch Aktivitäten umgesetzt? Oder gibt es eine bessere Möglichkeit, das MVC-Muster für Android zu implementieren?
Ist es möglich, das Model-View-Controller-Muster in Java für Android zu implementieren?
Oder ist sie bereits durch Aktivitäten umgesetzt? Oder gibt es eine bessere Möglichkeit, das MVC-Muster für Android zu implementieren?
Obwohl dieser Beitrag alt zu sein scheint, möchte ich die folgenden beiden hinzufügen, um über die jüngsten Entwicklungen in diesem Bereich für Android zu informieren:
Android-Bindung - Bereitstellung eines Frameworks, das die Bindung von Android-View-Widgets an das Datenmodell ermöglicht. Es hilft bei der Implementierung von MVC- oder MVVM-Mustern in Android-Anwendungen.
roboguice - RoboGuice nimmt der Entwicklung das Rätselraten ab. Injizieren Sie Ihre Ansicht, Ihre Ressource, Ihren Systemdienst oder ein beliebiges anderes Objekt und lassen Sie RoboGuice sich um die Details kümmern.
Beschreibung:
Das MVC-Muster sieht im Wesentlichen so aus:
Ein wichtiges Merkmal von MVC: Wir können entweder das Modell oder die Ansicht oder den Controller ändern, ohne dass die anderen davon betroffen sind.
Das MVC-Muster von Android wird (irgendwie) mit der Adapter Klassen. Sie ersetzen einen Controller durch einen "Adapter". In der Beschreibung für den Adapter heißt es:
Ein Adapter Objekt fungiert als Brücke zwischen einer AdapterView und dem zugrundeliegenden Daten für diese Ansicht.
Ich untersuche dies gerade für eine Android-Anwendung, die aus einer Datenbank liest, daher weiß ich noch nicht, wie gut es funktioniert. Allerdings scheint es ein wenig wie Qt's Model-View-Delegate Architektur, die sie behaupten, ist ein Schritt nach oben von einem traditionellen MVC-Muster. Zumindest auf dem PC funktioniert das Muster von Qt recht gut.
Es war überraschend zu sehen, dass keiner der Beiträge hier eine Antwort auf die Frage gab. Sie sind entweder zu allgemein, vage, falsch oder gehen nicht auf die Implementierung in Android ein.
In MVC ist die Siehe Schicht kann nur die Benutzeroberfläche (UI) anzeigen. Wenn dafür Daten benötigt werden, erhält sie diese von der Modell Ebene. Aber die Ansicht fragt NICHT direkt das Modell, um die Daten zu finden, sondern tut dies über die Controller . Also die Controller ruft das Modell um die erforderlichen Daten für die Siehe . Sobald die Daten fertig sind, wird die Controller informiert die Siehe dass die Daten bereit sind für die Erfassung aus dem Modell . Jetzt ist die Siehe kann die Daten aus dem Modell .
Dieser Fluss lässt sich wie folgt zusammenfassen:
Es ist erwähnenswert, dass die Siehe kann über die Verfügbarkeit der Daten im Modell entweder durch Controller -- auch bekannt als Passiv MVC -- oder durch Beobachtung der Daten in der Modell durch die Registrierung von Observablen, die MVC aktiv .
Was die Implementierung betrifft, so stellt sich als erstes die Frage, welche Android-Komponente für die Siehe ? Activity
oder Fragment
?
Die Antwort ist, dass es keine Rolle spielt und beide verwendet werden können. Die Siehe sollte in der Lage sein, die Benutzeroberfläche (UI) auf dem Gerät darzustellen und auf die Interaktion des Benutzers mit der UI zu reagieren. Sowohl Activity
y Fragment
stellen die dafür erforderlichen Methoden zur Verfügung.
In der Beispielanwendung, die in dieser Artikel Ich habe verwendet Activity
für die Siehe Schicht, sondern Fragment
kann ebenfalls verwendet werden.
Die vollständige Beispielanwendung finden Sie im 'mvc'-Zweig meines GitHub-Repos これ .
Ich habe mich auch mit den Vor- und Nachteilen der MVC-Architektur in Android anhand eines Beispiels beschäftigt これ .
Für Interessierte habe ich eine Reihe von Artikeln über die Architektur von Android-Anwendungen begonnen これ in dem ich die verschiedenen Architekturen, d.h. MVC, MVP, MVVM, für die Entwicklung von Android-Apps anhand einer vollständig funktionierenden App vergleiche.
Ich denke, die nützlichste vereinfachte Erklärung finden Sie hier: http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf
Nach allem, was ich hier gesehen und gelesen habe, macht die Implementierung all dieser Dinge die Sache schwieriger und passt nicht gut zu anderen Teilen von Android.
Dass eine Aktivität andere Zuhörer implementiert, ist bereits der Standard bei Android. Der harmloseste Weg wäre, den Java Observer hinzuzufügen, wie in den Folien beschrieben, und die onClick- und andere Arten von Aktionen in Funktionen zu gruppieren, die immer noch in der Activity sind.
Bei Android ist es so, dass die Aktivität beides tut. Der Kampf dagegen macht das Erweitern oder zukünftige Codieren nicht wirklich einfacher.
Ich stimme zu mit die 2. Stelle . Es ist irgendwie schon implementiert, nur nicht so, wie es die Leute gewohnt sind. Unabhängig davon, ob es sich um dieselbe Datei handelt oder nicht, gibt es bereits eine Trennung. Es besteht keine Notwendigkeit, eine zusätzliche Trennung zu schaffen, um sie an andere Sprachen und Betriebssysteme anzupassen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.