2017-04-26 6 views
0

Ich begann in einem Projekt zu arbeiten, das bereits Realm und die MVVM Struktur hatte. Ab sofort sind alle Realm-Methoden statisch und befinden sich in einer RealmHelper-Klasse, mit Ausnahme einiger Methoden, die in den ViewModel-Klassen der jeweiligen Aktivität enthalten sind. Aber der RealmHelper-Kurs wird immer größer und unordentlich. Ich wollte wissen, welche Vorschläge Sie haben, um meine Methoden und Klassen bei der Verwendung von Realm neu anzuordnen.Android Realm Projektstruktur

+0

möchten Sie vielleicht auf http://Stackoverflow.com/a/31560557/2413303 suchen und entscheiden – EpicPandaForce

+0

Vielen Dank, ich werde einen Blick und scheint interessant – julioribeiro

Antwort

0

Es ist vollkommen in Ordnung, wenn Sie die Klasse RealmHelper behalten möchten, die alle Methoden verwaltet, auf die Ihre App zugreifen kann. Möglicherweise möchten Sie versuchen, die Methoden in einen Liner zu konvertieren, der intern an eine andere Klasse weitergeleitet wird.

So ist die Struktur könnte wie folgt aussehen:

co.your.app.realmhelper

  • RealmHelper [public]
  • WriterHelper [Paket Privat]
  • ReaderHelper [Package Privat]

Also alle Ihre Logik geschieht tatsächlich in dem Paket private c Lasses, aber der Rest deiner App würde mit dem RealmHelper interagieren. Der RealmHelper würde nur die Instanzen der privaten Paketklassen verwalten und bestimmen, welche Methoden für diese Klassen aufgerufen werden sollen.

Ihre andere Möglichkeit ist es, den RealmHelper zugunsten kleinerer Klassen loszuwerden. Ohne zu wissen, was dein RealmHelper tatsächlich macht, ist es schwierig, zusätzliche Ratschläge zu geben.

+0

Vielen Dank für die Antwort. Heute RealmHelper ist nicht so groß, aber es hat alle Arten von Methoden (Readers und Writers und andere Überprüfungen) für jedes Model, es sieht chaotisch aus. Ich wollte ein Muster erstellen. Ihre Idee von einem WriterHelper und ReaderHelper klingt wirklich gut. – julioribeiro

+0

Als ich also ein Projekt in Realm ausführte, hatte ich im Grunde für jedes Modell, das ich innerhalb von Realm repräsentierte, Helfer, die sich eine Basisimplementierung teilten. So etwas wie "AbstractDao" und dann hätte das Basisimplementierungen für die CRUD-Operationen. Dann würde jedes Modell seinen eigenen Dao haben, der zusätzliche Operationen hinzufügen könnte. Dies könnte eine weitere nützliche Route sein, die Sie erkunden können. Leider habe ich derzeit keine Open-Source-Lösung für die Freigabe. – CodyEngel

+0

Der eine, den ich oben verlinkt habe, wäre ein sehr ähnliches Muster, außer dass ich 'Dao' als' Repository' nenne. – EpicPandaForce