2017-07-16 3 views
0

J'essaie de construire une application Android basée sur l'architecture propre de bob. J'ai lu beaucoup d'articles sur la même chose. Enfin suivant this, . J'ai lu sur le modèle de dépôt de here.Architecture propre Android: où faire le mappage des objets

L'application est une application de prise de notes simple (/ idées). Je suis emballage par des fonctionnalités.

package structure

permet de prendre le cas pour obtenir toutes les notes/idées du database.I ont un usecase/interacteur GetAllIdeasUseCase qui renverra la liste des (observateur) objets métier IdeasEntity. Cela utilise le IdeasRepository pour obtenir une liste d'idées. Le IdeaLocalStore est un référentiel à la base de données. Le IdeasRepository choisit actuellement entre IdeaLocalRepository et IdeaCloudRepository et appellera la fonction correspondante sur eux.

Pour créer l'IdeasEntity, j'aurais besoin d'utiliser plusieurs modèles db, donc plusieurs appels à IdeaLocalStore. Et je devrais les combiner.

Donc la question est où dois-je faire cette combinaison/mappage. Devrais-je le faire dans le IdesRepository ou devrais-je le faire à l'intérieur de l'usecase?

+0

L'entité doit être créée en une seule lecture, laisser la base de données faire ce travail. – Pavlus

Répondre

2

À mon avis, vous devriez le faire dans le dépôt. Le référentiel doit être responsable de vous fournir un objet entièrement créé. Il existe un bon livre décrivant cette approche - Domain-Driven Design ( http://mikehadlow.blogspot.com/2009/01/eric-evans-on-repositories.html). Citation du livre: 'Ainsi, l'objectif principal du référentiel est d'encapsuler la persistance. Le client doit sembler utiliser simplement une collection d'entités et tous les détails du mappage relationnel d'objet et des API d'accès aux données spécifiques doivent être masqués derrière cette interface de type collection. Les dépôts ne doivent être fournis que pour les racines agrégées.