我使用匕首2在多層,多庫 Android SDK中的項目。多層/庫架構dagger2:設計範圍,組件,模塊
我在不同的圖層上開發了許多不同的庫(數據,業務邏輯,演示文稿等),並使用匕首將它們粘合在一起。
我最重要的要求是,該建築的每個庫應該使用獨立的(帶及其相關組件),以及一個開發者應該決定的基礎上,他想要的任何層之上:
例如:
- 使用一切下面
- 隨意替換任何片堆疊的,以增強或改變行爲
現在我已經爲每個庫創建了一個具有自定義作用域的Dagger組件,但有時候我有一個組件依賴於其他2-3個組件,而Dagger抱怨應該只有1個依賴組件被作用域。 (例如使用服務組件來從公司服務和傳感器組件獲得數據以獲得設備傳感器數據/連接性或其他)的域層。
我不能擺脫範圍,因爲我需要這些組件是範圍/單身。
我目前的解決方法是通過依賴組件的模塊構造,但是這看起來像一個解決辦法,我想知道什麼是接近這種要求用匕首2
複雜性的正確方法也不能很好地擴展,並且替換中間的一部分需要擴展替換實現的模塊之一,這根本不是用戶友好的。
我讀過關於子組件,但看起來像那些不能獨立使用,除非你爲每個組件編寫組件,他們還爲實際實現聲明模塊,以便它們不能被其他實現替換。
有人可以分享他們的匕首或架構細說這些概念與庫項目的重點,被其他開發者用於組裝部件和組件的重用?
(這個問題has been asked最初的dagger2問題跟蹤,但被關閉指着我堆棧溢出 - 只使用模塊也是不適合的原因,這些需要的庫的用戶知道組裝的模塊,以及如何和我沒有辦法設置不強制執行特定實現的模塊依賴關係)