2017-07-16 10 views
0

私はbobのクリーンなアーキテクチャに基づいてアンドロイドアプリを構築しようとしています。私は同じことについて多くの記事を読んだ。最後にthisに続いて、this。私はhereからリポジトリパターンについて読んだ。クリーンアーキテクチャAndroid:オブジェクトマッピングを行う場所

アプリは簡単なノート(/アイデア)撮影アプリです。私は機能別にパッケージングしています。

package structure

database.Iからすべてのメモ/アイデアが(オブザーバー)事業がIdeasEntityオブジェクトのリストを返しますユースケース/インタラクタGetAllIdeasUseCaseを持ってもらうためにケースを取ることができます。これは、IdeasRepositoryを使用してアイデアのリストを取得します。 IdeaLocalStoreはデータベースのリポジトリです。 IdeasRepositoryは現在、IdeaLocalRepositoryIdeaCloudRepositoryの間で選択し、対応する関数を呼び出します。

IdeasEntityを作成するには、複数のデータベースモデルを使用し、IdeaLocalStoreを複数回呼び出す必要があります。そして私はそれらを組み合わせる必要があります。

だから、質問はです。この組み合わせ/マッピングはどこで行うべきですか?私はIdesRepositoryでそれをやるべきか、私はusecaseの中でそれをするべきですか?

+0

エンティティは1回の読み込みで作成し、データベースにそのジョブを実行させる必要があります。 – Pavlus

答えて

2

私の意見では、あなたはリポジトリでそれを行うべきです。リポジトリは、完全に作成されたオブジェクトを提供する責任があります。 このアプローチについては、ドメイン駆動型デザイン( http://mikehadlow.blogspot.com/2009/01/eric-evans-on-repositories.html)という優れた本があります。

'リポジトリの主な目的は、永続性をカプセル化することです。クライアントは単純にエンティティコレクションを使用しているように見え、オブジェクトリレーショナルマッピングのすべての詳細と特定のデータアクセスAPIは、インターフェイスのようにそのコレクションの背後に隠れるべきです。リポジトリは集計ルートにのみ提供する必要があります。 '

関連する問題