1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

MVC Pattern

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Fossil89, 28.05.2012.

  1. Fossil89, 28.05.2012 #1
    Fossil89

    Fossil89 Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    04.04.2012
    Hallo zusammen,
    ich würde gerne das MVC Pattern in meiner App verwenden wei es sich anbietet. Da dies Pattern ja praktisch schon in Android enthalten ist wollte ich wisse ob ich das richtig verstanden habe:

    [FONT=&quot]Model[/FONT][FONT=&quot] -> Beans, DAO- und Persister-Klassen mit Zugriff auf DB[/FONT]
    [FONT=&quot] Anmerkung:[/FONT] Ich arbeite mit DAO-und Persister Klassen und meine DB gibt lediglich Werte aus und es werden keine Werte verändert zurückgegeben.

    [FONT=&quot]View[/FONT][FONT=&quot] -> XML-Files[/FONT]
    [FONT=&quot]Controller[/FONT][FONT=&quot] -> Activity[/FONT]

    Ist das so Korrekt?

    Eine weitere Frage wäre ob ich für jede View dann ne eigene Activity sprich Controller bräuchte?

    Danke schonmal im vorraus :)
     
    Zuletzt bearbeitet: 28.05.2012
  2. v Ralle v, 28.05.2012 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Nein, das MVC Pattern wurde in Android nicht umgesetzt und es lässt sich auch nur schwer umsetzen, da vieles Auslegungssache ist.

    Das Model hat NICHTS mit der Persistenz zu tun. MVC hat sich durchgesetzt, als Smalltalk sehr beliebt war und Smalltalk hat die Persistenz automatisch erledigt. Deshalb spricht man auch gerne von einer 3,5 Schichten Architektur. Persistenz ist eine extra Schicht.

    Als View kann man die XML Dateien betrachten, das ist richtig. Aber die eine Activity kann sowohl als View als auch als Controller betrachtet werden. Das ist Auslegungssache, je nachdem welcher Code in der Activity landet.
     
    Fossil89 bedankt sich.
  3. Fossil89, 28.05.2012 #3
    Fossil89

    Fossil89 Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    04.04.2012
    Danke für die schnelle Antwort :)

    wenn wir davon ausgehen das meine Activity mein Controller ist, brauch ich dann für jede einzelne View (XML Datei) einen eigenen COntroller (Activity) oder wäre eine "große" Activity sinnvoller?
     
  4. v Ralle v, 28.05.2012 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Halt dich nicht an dem Pattern fest, außer du machst eine Studie oder ähnliches dazu.

    Im richtigen MVC gibt es nur einen einzigen Controller. Das ist bei Android aber nicht möglich.

    Was ist denn dein Ziel? MVC passt einfach nicht zu Android.
     
    Fossil89 bedankt sich.
  5. Fossil89, 28.05.2012 #5
    Fossil89

    Fossil89 Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    04.04.2012
    Ok,
    das Pattern ist nicht zwingend notwendig es wäre einfach nur "nett" gewesen damit zu arbeiten da ich es aus Vorlesungen bereits kenne.

    Es handelt sich um eine App die einen Schritt für Schritt durch ein Rezept führt. Dazu benutze ich eben eine SQLite DB aus der nur Daten gelesen und werden nichts "verändert" wird. Und das wiederum wird alles mit Dao-und Persister Klassen geregelt.
    Ich habe pro Schritt natürlich verschiedene Anzeigen und da muss ich jetzt wissen ob ich pro Anzeige eine eigene Activity machen sollte oder eine große Activity wo alles gesteuert wird, also Buttons usw....

    Danke für die tollen Antworten immer :)
     
  6. v Ralle v, 28.05.2012 #6
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Du hast ein treffendes Beispiel. Ich nehme es als Beispiel:

    Ein einzige Activity. Mit Button Vor / Zurück geht man durch das Rezept. Der Bildschirm wird mit Fragments aktualisiert. Die eine Activity dient als Controller. Hier ist das Konzept möglich, aber nicht schön. Brauchst du dann noch eine PreferenceActivity, dann wird das Konzept übern Haufen geworfen.

    Vielleicht als Gedankenstütze, wie ich es angehen würde: mehrere Activities, eine fürs Rezept, eine andere für die Zutaten, eine mit Vorschaubild etc. Über Parameter gibst du der Activity mit, welche Daten sie anzeigen soll. Am Ende kommst du vielleicht auf eine handvoll Activities, aber es ist wesentlich besser strukturiert und wartbar (Fragments bieten sich auch an um die Views einzuteilen).

    Wie gesagt, klammer dich nicht an das eine Pattern, nur weil du es kennst. Bei Android passt es einfach nicht, es wird alles nur unübersichtlich.
     
    Fossil89 bedankt sich.
  7. Fossil89, 31.05.2012 #7
    Fossil89

    Fossil89 Threadstarter Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    04.04.2012
    Soo ich hab jetzt mehrere Activities erstellt und es funktioniert auch soweit alles super.
    Allerdings habe ich bemerkt das wenn ich die Buttons verwende, zB. Vor oder zurück, dann flackert es für einen kurzen moment als würde er die App jedes mal neuladen anstatt einfach nur die in die nächste View (Activity) zu springen. Hab ich vergessen noch irgendetwas einzufügen? Im Manifest oder so?

    Edit: Bin leider grad noch auf ein anderes Problem gestoßen. Da ich ja mit DAO-Persister arbeite, überschneidet sich das ein bisschen mit dem in Android standartmäßig vorhanden Cursor...gibts da irgend ne einfache Lösung?
     
    Zuletzt bearbeitet: 01.06.2012

Diese Seite empfehlen