我有一堆产品口味它们基本上是一个单一的应用程序的白色标签的应用。 然而,一旦在一段时间,有来自于一些味道,因为客户想要的东西略有不同的主流一些分歧。 到目前为止,我们一直在为编辑这些案件的代码,并使用面条代码(很多IFS的和别人的),以确保其他应用程序不破。 不用说,这是不是要做到这一点非常可扩展的(甚至是理智的)的方式。
一种选择是写活动类在productFlavor源文件夹,即src/flavor1/java/AnActivity.java
, src/flavor2/java/AnActivity.java
等。由于productFlavor代码不能重写src/main
类,这将需要被复制为每个新口味相同的类即使没有定制。 我真的不喜欢这个选项了。 这导致大量的冗余代码和类名最终被没有这么描述了,因为它们都必须有以覆盖他人,即使他们可能会做一些不同的东西相同的名称。
另一种选择是使用类似Dagger
建立一个ObjectGraph
和不同的实现注入意图。 举例来说,如果它的flavor1
,按钮被点击X时,对于意图ActivityA
注入,如果它是flavor2
,对于意图ActivityB
注入。
这似乎是一个更好的办法做到这一点,但我仍然不知道如何实现,将覆盖绑定默认类ObjectGraph
。
在实施或其他选项的任何想法? 我不是必然Dagger
,我刚开始寻找到依赖注入和测试,以便其他框架很好的工作。