2016-05-05 4 views
0

Android Clean Archで各レイヤーを分割しようとしています。私はhttps://github.com/dmilicic/Android-Clean-Boilerplateのプロジェクト、Uncle-Bobの記事/コードに従います。今のところ、RxJava、Draggerなどはdbflow ormデータベースを使用しませんでした。今すぐ混乱したくありません。クリーンアーキテクチャーインタラクターの実装

ストレージ実装用のドメインにはいくつかのデータリポジトリのインターフェイスがあります。各種類のデータには、挿入/追加、削除、更新、getXXXByXXなどのいくつかのメソッドがあります。サンプルコードでは、それはユーザーまたはコストリポジトリだけです。ユーザーはインタラクターに3つのファイル(実装)を持っています。

相互作用物質: DefaultSubscriber GetUserDetails GetUserList ユースケース

リポジトリ: UserRepository

ユーザー、コスト、デバイスなど3つのリポジトリがあり、かつ相互作用物質で3X4--12方法ファイルが存在しますと仮定。ファイルを減らし、リポジトリのメソッドをメソッドを含むUserOpsのような1つのImplファイルにする方法があれば?またはその他の推奨事項。

答えて

0

集計を読むことをお勧めします。

基本的には、集約と見なされるオブジェクトに対してのみリポジトリを持つべきです。集約とは、常に独立した意味を持ち、1つ以上のオブジェクトを含むオブジェクトです。あなたのケースでは、多くの情報がなくても、ユーザーとデバイスという2つの集計があると言えます。ユーザーは、常に理にかなっていて、意味を成すためにデバイスやコストを必要としないものです。一方、コストはそれがコストであるということがなければ意味をなさないので、総計はコストのかかるデバイスになります。実際には、これは、2つのリポジトリを持っていることを意味します.1つはユーザを取得するリポジトリ、もう1つはコストがかかるデバイスを取得するリポジトリです。

また、多くの情報がないため、アプリケーションデバイスではユーザーがいなければ理にかなっていないので、集約はユーザーに過ぎず、ユーザーが追加/取得すると、コストがかかるデバイスがあります。あるいは、すべてのオブジェクトが自分自身で意味を成すことができます。その場合は、3つのリポジトリを持つことになりますが、その場合は疑いがあります。