2

在乾淨的架構,如果我按功能組織我的包。在哪裏放依賴注入Dagger2類代碼?如果把依賴注入類清潔架構

+1

您可以按照下面的示例https://github.com/burhanrashid52/AndroidDaggerMVPRxArchitecture –

+2

類應該圍繞* Constructor Injection *進行設計,並且類應該在* [Composition Root]中組成(或註冊)(http:// blog.ploeh.dk/2011/07/28/CompositionRoot/)*。 – Steven

回答

2

除了上面收到的好評以外,您應該按照包中的功能對班級進行分組,並將Dagger 2 ComponentModule類放在該軟件包中。

請參閱谷歌Android架構藍圖Dagger/MVP sample

有一個根包爲應用程序類和應用範圍的模塊和部件。從這個根包,也有按功能分爲以下子包:

addedittask 
statistics 
taskdetail 
tasks 
util 

包裏面有以下類:

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

這樣做的好處是,你可以使用access control來防止您的班級意外使用。這符合有效的Java項目13 - 儘量減少班級和成員的可訪問性