2017-09-18 2 views
1

Ich habe gerade gelesen the Guide to App Architecture. Darin zeigt Google die grundlegenden Richtlinien zum Erstellen robuster Android-Anwendungen mit den neuen Android Architecture Components. Wie in gezeigt this year's Google I/O sollte ein APP 4 Schichten:Wie Android Clean Architektur zu respektieren

enter image description here

Wo die Abhängigkeiten von oben nach unten fließen, mit höheren Schichten nur Wissen über die Komponenten, die direkt unter ihnen sind, zB. UI-Controller nur kennt Ansichtsmodell, Ansichtsmodell nur über Repository wissen usw.

So sah ich die Videos, die entsprechenden codelabs abgeschlossen, dann studierte ich die Führung und nach einem groben Verständnis mit fing ich an, um den Anwendungsfall zu codieren, der in diesem Handbuch behandelt wurde.

Das Ziel des Leitfadens war es, eine App zu implementieren, die einfach ein Benutzerobjekt aus dem Backend holt und es dem Benutzer zeigt, alles in Bezug auf saubere Architektur.

Meine Frage entstand, sobald ich diesen Anwendungsfall zu programmieren begann. Die gesamte Anwendung ist in diesem Benutzer Pojo abhängig. Das Repository ruft es vom Backend ab, dann speichert es es in der DataSource unter Verwendung von Room und mit Hilfe von LiveData werden das ViewModel und die Benutzeroberfläche benachrichtigt. Also ** in welcher Schicht sollte die Definition meines Datenmodells - in diesem Anwendungsfall der User Pojo- ** sein. Oder jede Ebene sollte ein Benutzer-Pojo haben, das vom Benutzer-Pojo aus der unteren Ebene zugeordnet wird?

Antwort

0

Ich würde eine "Schicht" zum Bild hinzufügen: das Modell oder die Domäne, wenn Sie so wollen. Wenn es um den Raum geht, ist das Modell ein einfacher Satz von POJO-Objekten. Der Modell-Layer hat keine Beziehungen zu anderen Layern, aber es können Referenzen von allen anderen Layern in Ihrem Bild sein.

0

Sie können einige Entitätsklassen (POJOs) verwenden, die die Art und Weise darstellen, wie Ihre Daten in einem reduzierten Bereich, der Datenquellenebene, abgerufen werden. Die Domänenklassen, die Ihr Geschäftsmodell darstellen, sollten auf den Entitätsklassen basieren. Idealerweise sollten sie von Ihrem Repository, dem Eingangspunkt zu Ihren Daten, offen gelegt werden, die die Antworten aus den vielen Quellen, die Sie haben könnten, behandeln und in Modelle umwandeln, die die Außenwelt versteht. Auf diese Weise sind Sie nicht auf die vielen Änderungen angewiesen, die Ihre Datenquelle im Laufe der Zeit erleiden könnte, und Ihre Domäne bleibt konsistent.

Verwandte Themen