我使用匕首2在多层,多库 Android SDK中的项目。多层/库架构dagger2:设计范围,组件,模块
我在不同的图层上开发了许多不同的库(数据,业务逻辑,演示文稿等),并使用匕首将它们粘合在一起。
我最重要的要求是,该建筑的每个库应该使用独立的(带及其相关组件),以及一个开发者应该决定的基础上,他想要的任何层之上:
例如:
- 使用一切下面
- 随意替换任何片堆叠的,以增强或改变行为
现在我已经为每个库创建了一个具有自定义作用域的Dagger组件,但有时候我有一个组件依赖于其他2-3个组件,而Dagger抱怨应该只有1个依赖组件被作用域。 (例如使用服务组件来从公司服务和传感器组件获得数据以获得设备传感器数据/连接性或其他)的域层。
我不能摆脱范围,因为我需要这些组件是范围/单身。
我目前的解决方法是通过依赖组件的模块构造,但是这看起来像一个解决办法,我想知道什么是接近这种要求用匕首2
复杂性的正确方法也不能很好地扩展,并且替换中间的一部分需要扩展替换实现的模块之一,这根本不是用户友好的。
我读过关于子组件,但看起来像那些不能独立使用,除非你为每个组件编写组件,他们还为实际实现声明模块,以便它们不能被其他实现替换。
有人可以分享他们的匕首或架构细说这些概念与库项目的重点,被其他开发者用于组装部件和组件的重用?
(这个问题has been asked最初的dagger2问题跟踪,但被关闭指着我堆栈溢出 - 只使用模块也是不适合的原因,这些需要的库的用户知道组装的模块,以及如何和我没有办法设置不强制执行特定实现的模块依赖关系)