我正在开发针对特定业务合作伙伴而非消费者的应用。起初,我们有一个主要的代码库,每个客户端的口味很多,只有资源这样的琐碎事情(例如,为每个客户定义不同的主要颜色和徽标)。
然而,随着时间的推移,不同的客户端需要不同的逻辑,我们必须适应,所以我们将小块代码分解为“默认行为”类,其中有一个类在每种风格上扩展它,因此我们可以对每个风味。
问题是随着时间的推移,基本行为类已成为一个怪物,重构可能会破坏一种或另一种(大约30种)。
基本上我的问题是:
任何人都可以想到一个可扩展的设计解决方案,以帮助管理具有多种风格的应用程序,在UI和逻辑上变得越来越不同,代码重复最少且易于维护吗?
答案 0 :(得分:0)
您可以使用BuildConfig
课程。这是每次构建应用时由 gradle 创建的静态类,可以在您的应用中访问。
你声明他们是这样的:
android {
productFlavors {
flavorX {
buildConfigField("String", "Flavor", "\"flavorX\"")
}
}
}
然后在代码中你只需使用
String flavor = BuildConfig.Flavor;
if(flavor.equals("flavorX")){
//do stuff
}
BuildConfig
是一个静态类,因此这将允许您在需要的地方区分风味,而不是只在一个替换类中。在您的情况下,这似乎更有效,更易于维护。