所以我有一个Android基础项目,我想分成各种风格。分配单独的xml很容易,类也是如此。但是,当从基类调用flavor类时会出现问题。比如我说:
package app.myapp.service
import app.flavor1.ClassB
import app.flavor2.ClassB
import app.flavor3.ClassB
import app.flavor4.ClassB
public class Class A
{
Class B bar = new Class B;
bar.foo();
}
因此,根据风格构建,我仍然希望使用它的B类实现,但是我不能导入这两个类,因为每个特定风格都不会识别不在该项目结构中的导入。因此,在构建项目时,它将抛出错误,因为无法识别导入。如果它只有两种口味,我可以做一个buildconfig来修复它,但是如果口味变成2+就会成为一个问题。我该如何解决这个问题?或者换一种方式,我仍然可以从我的基类导入多种口味?感谢
答案 0 :(得分:1)
我不知道是否可能,但是一个快速的建议是为ClassB创建一个接口,然后在各种风格中表示实现,并在每种风格中设置一些代码来将实现设置为用过的。最简单的方法是使用依赖注入,例如:
ClassA.setClassBImplementation(ClassBInterface obj);
并且有一个可以在代码中使用的内部ClassBInterface变量。然后,您可以从每个类型的类中调用所述方法来设置正确的实现。