多风味应用程序的设计帮助

时间:2016-11-14 13:27:11

标签: android oop

我正在开发针对特定业务合作伙伴而非消费者的应用。起初,我们有一个主要的代码库,每个客户端的口味很多,只有资源这样的琐碎事情(例如,为每个客户定义不同的主要颜色和徽标)。

然而,随着时间的推移,不同的客户端需要不同的逻辑,我们必须适应,所以我们将小块代码分解为“默认行为”类,其中有一个类在每种风格上扩展它,因此我们可以对每个风味。

问题是随着时间的推移,基本行为类已成为一个怪物,重构可能会破坏一种或另一种(大约30种)。

基本上我的问题是:

任何人都可以想到一个可扩展的设计解决方案,以帮助管理具有多种风格的应用程序,在UI和逻辑上变得越来越不同,代码重复最少且易于维护吗?

1 个答案:

答案 0 :(得分:0)

您可以使用BuildConfig课程。这是每次构建应用时由 gradle 创建的静态类,可以在您的应用中访问。

你声明他们是这样的:

android {
    productFlavors {
        flavorX {
            buildConfigField("String", "Flavor", "\"flavorX\"")
        }
    }
}

然后在代码中你只需使用

String flavor = BuildConfig.Flavor;
if(flavor.equals("flavorX")){
    //do stuff
}

BuildConfig是一个静态类,因此这将允许您在需要的地方区分风味,而不是只在一个替换类中。在您的情况下,这似乎更有效,更易于维护。