517 Stimmen

MVC-Muster auf Android

Ist es möglich, das Model-View-Controller-Muster in Java für Android zu implementieren?

Oder ist es bereits durch Aktivitäten implementiert? Oder gibt es einen besseren Weg, das MVC-Muster für Android zu implementieren?

64 Stimmen

Deine Frage ist sehr gut. Aber die als Lösung markierte Antwort ist meiner Meinung nach nicht korrekt. Sie könnte mehrere Personen in die Irre führen.

4 Stimmen

Überprüfe meine 2 Beiträge hier Android-Architektur: MV?

1 Stimmen

Auch gibt es zusätzliche Regeln, die beachtet werden müssen, um sich an das MVC-Modell zu halten, oder ist die Android-Entwicklung aufgrund von Aktivität, XML und Ressourcen bereits auf MVC zugeschnitten?

15voto

Vasiliy Punkte 15663

Sie können MVC in Android implementieren, aber es wird nicht "native unterstützt" und erfordert einige Anstrengungen.

Trotzdem tendiere ich persönlich eher zu MVP als zu einem viel saubereren architektonischen Muster für die Android-Entwicklung. Und wenn ich MVP sage, meine ich das hier:

Bildbeschreibung hier eingeben

Ich habe auch eine ausführlichere Antwort hier gepostet.

Nachdem ich mit den verschiedenen Ansätzen zur MVC/MVP-Implementierung in Android gespielt habe, habe ich ein vernünftiges architektonisches Muster entwickelt, das ich in diesem Beitrag beschrieben habe: MVP und MVC Architekturmuster in Android.

13voto

Hervé Donner Punkte 513

Die beste Ressource, die ich gefunden habe, um MVC auf Android zu implementieren, ist dieser Beitrag:

Ich habe das gleiche Design für eines meiner Projekte übernommen und es hat super funktioniert. Ich bin Anfänger auf Android, daher kann ich nicht sagen, dass dies die beste Lösung ist.

Ich habe eine Änderung vorgenommen: Ich habe das Modell und den Controller für jede Aktivität in der Anwendungs-Klasse instantiiert, damit sie nicht neu erstellt werden, wenn der Landscape-Porträt-Modus wechselt.

9 Stimmen

Es wäre toll, eine Zusammenfassung zu bekommen, falls der Artikel eines Tages gelöscht wird.

1 Stimmen

Die verlinkte Seite zeigt für mich nichts an.

1 Stimmen

12voto

typingduck Punkte 759

Ich bin einverstanden mit JDPeckham, und ich glaube, dass alleine XML nicht ausreicht, um den UI-Teil einer Anwendung zu implementieren.

Allerdings, wenn Sie die Aktivität als Teil der Ansicht betrachten, dann ist die Implementierung von MVC recht einfach. Sie können Application überschreiben (wie von getApplication() in Activity zurückgegeben) und hier können Sie einen Controller erstellen, der während der Lebensdauer Ihrer Anwendung erhalten bleibt.

(Alternativ können Sie das Singleton-Muster verwenden, wie vom Anwendungsbeispiel vorgeschlagen.)

12voto

DropAndTrap Punkte 1530

MVC-Architektur auf Android   Es ist besser, jedem MVP statt MVC in Android zu folgen. Aber gemäß der Antwort auf die Frage kann dies eine Lösung sein

Gib hier eine Bildbeschreibung ein

Beschreibung und Richtlinien

     Controller -
        Die Aktivität kann die Rolle spielen.
        Verwenden Sie eine Anwendungsklasse, um die 
        globalen Methoden zu schreiben und zu definieren und vermeiden 
        Sie statische Variablen im Controller-Label.
    Model -
        Entität wie - Benutzer, Produkt und Kundenklasse.
    Ansicht -
        XML-Layoutdateien.
    ViewModel -
        Klasse mit ähnlichen Eigenschaften wie CartItem und Besitzer 
        Modelle mit mehreren Klasseneigenschaften.
    Dienst -
        DataService- Alle Tabellen, die Logik haben,
        um die Daten zum Binden der Modelle abzurufen - UserTable, 
        CustomerTable
        NetworkService - Der Servicelogik bindet die 
        Logik mit Netzwerkanruf - Login-Dienst
Helfer -
        StringHelper, ValidationHelper statisch
        Methoden zur Hilfe bei der Formatierung und Validierung des Codes.
SharedView - Fragmente oder gemeinsam genutzte Ansichten aus dem Code 
        können hier getrennt werden
AppConstant -
        Verwenden Sie die Werteordner-XML-Dateien
        für konstante App-Ebene

HINWEIS 1:

Jetzt kommt der Zaubertrick, den Sie machen können. Sobald Sie den Codeabschnitt klassifiziert haben, schreiben Sie eine Basisschnittstellenklasse wie IEntity und IService. Deklarieren Sie allgemeine Methoden. Erstellen Sie nun die abstrakte Klasse BaseService und deklarieren Sie Ihre eigenen Methodensätze und haben Sie eine Code-Trennung.

HINWEIS 2: Wenn Ihre Aktivität mehrere Modelle präsentiert, ist es besser, die Ansichten in Fragmente aufzuteilen, anstatt den Code/die Logik in der Aktivität zu schreiben. Dann ist es besser. Wenn also in Zukunft ein weiteres Modell angezeigt werden soll, fügen Sie einfach ein weiteres Fragment hinzu.

HINWEIS 3: Code-Trennung ist sehr wichtig. Jede Komponente in der Architektur sollte unabhängig sein und keine abhängige Logik haben. Wenn Sie zufällig eine abhängige Logik haben, schreiben Sie eine Mapping-Logikkategorie dazwischen. Das wird Ihnen in der Zukunft helfen.

11voto

Arunabh Das Punkte 12218

Die Erstellung der Android-Benutzeroberfläche mit Layouts, Ressourcen, Activities und Intents ist eine Implementierung des MVC-Musters. Bitte beachten Sie den folgenden Link für weitere Informationen dazu - http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf

Spiegel für das PDF

7 Stimmen

Der Link ist defekt, Sir.

2 Stimmen

Es scheint, dass diese COSC346-lab2.2up.pdf Datei nicht alle Details enthält.

CodeJaeger.com

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.

Powered by:

X