2
クリーンアーキテクチャーでは、機能ごとにパッケージを編成している場合。どこに依存性注入Dagger2
クラスコードを置く?クリーンアーキテクチャーのDependency Injectionクラスを配置する場所
クリーンアーキテクチャーでは、機能ごとにパッケージを編成している場合。どこに依存性注入Dagger2
クラスコードを置く?クリーンアーキテクチャーのDependency Injectionクラスを配置する場所
上記の良いコメントに加えて、クラスを機能別にパッケージ化し、そのパッケージにDagger 2 Component
とModule
クラスを追加する必要があります。
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 - が達成されます。クラスとメンバーのアクセシビリティを最小化する。
この例に従うことができますhttps://github.com/burhanrashid52/AndroidDaggerMVPRxArchitecture –
クラスは* Constructor Injection *の周りに設計する必要があり、クラスは* [Composition Root](http://)で作成(または登録)する必要があります。 blog.ploeh.dk/2011/07/28/CompositionRoot/)*。 – Steven