我们的大型Android应用程序广泛使用匕首 - 它简化了代码库并协助使用Robolectric进行单元测试。一般来说,我们对它的工作方式非常满意。
随着时间的推移,已经开发了许多匕首模块,为应用的各个方面提供物体注射。该方法感觉支离破碎,模块之间的界限不明确。不可避免地,同一个对象已经在多个模块中完成,并且需要多个模块来满足某些类中的@Injects注释。 library = true和complete = false的组合意味着我们也错过了一些编译时检查。将新对象添加到模块可能会非常棘手,有时感觉好像我们正在使用匕首而不是使用它。
我们还有一组提供模拟对象的测试模块,但它们复制了主应用程序中的许多问题。
现在是时候重构我们的匕首实施并清理一些现在开始伤害我们的有机增长。是否有实施匕首的首选方法?
任何基于经验的指导都是最受欢迎的。