2

クリーンアーキテクチャーでは、機能ごとにパッケージを編成している場合。どこに依存性注入Dagger2クラスコードを置く?クリーンアーキテクチャーのDependency Injectionクラスを配置する場所

+1

この例に従うことができますhttps://github.com/burhanrashid52/AndroidDaggerMVPRxArchitecture –

+2

クラスは* Constructor Injection *の周りに設計する必要があり、クラスは* [Composition Root](http://)で作成(または登録)する必要があります。 blog.ploeh.dk/2011/07/28/CompositionRoot/)*。 – Steven

答えて

2

上記の良いコメントに加えて、クラスを機能別にパッケージ化し、そのパッケージにDagger 2 ComponentModuleクラスを追加する必要があります。

Google AndroidアーキテクチャのBlueprints Dagger/MVP sampleを参照してください。

Applicationクラスとapp-scopeモジュールとコンポーネントのルートパッケージがあります。そのルートパッケージからは、機能ごとにグループ化され、次のサブパッケージがあります。

addedittask 
statistics 
taskdetail 
tasks 
util 

パッケージ内に以下のクラスがあります。

TaskDetailActivity.java 
TaskDetailComponent.java 
TaskDetailContract.java 
TaskDetailFragment.java 
TaskDetailPresenter.java 
TaskDetailPresenterModule.java 

はこれを行うことの利点は、あなたがaccess controlにを使用することができますですクラスの意図しない使用を防止します。これにより、効果的なJava項目13 - が達成されます。クラスとメンバーのアクセシビリティを最小化する

関連する問題