我有一个图集应用程序,它有一些特定的部分,具体取决于所使用的图集。我们基本上将其描述为:
-
一个显示地点的地图活动
-
显示地点详细信息的一个地点详细信息活动
我正在使用flavors构建与每个图集相对应的应用程序。例如:
每个图集都从不同的服务器URL获取数据,尽管API相同,但返回的JSON在处理地点细节时有一些特定部分:
-
餐馆具有JSON属性,如opening_time、food_type。。。例如。:
{ "name": "", lat: "", lon: "", "opening_time": "", "food_type": "" }
-
观光站点具有JSON属性,如access_type、altitude。。。例如。:
{ "name": "", lat: "", lon: "", "access_type": "", "altitude": "" }
我使用Jackson进行JSON解析,并达到了以下目的:
-
我完成了所有公共属性的解析,并在details活动中显示了它们。
-
正确调用各个服务器(在Gradle中将URL指定为BuildConfig常量)。
问题
我对构建风格很陌生,我想知道哪种是处理特定风格代码的最佳方式(Jackson解析和详细视图)。我的意思是尽可能少地重复代码。
到目前为止,我做了什么:
对于视图,我觉得我可以简单地合并一个布局XML,它将被每个变量覆盖。这似乎起到了作用。
对于java代码,我仍然很困惑。也许是这样
class Place {
@JsonProperty("name")
String name;
@JsonUnwrapped
Details details;
}
但是,如何在不复制常见的Place代码和解析注释的情况下获得特定于口味的Details实现?即:
-
餐厅风味用途
com.atlas.restaurant.Details
-
观光风味用途
com.atlas.sightseeing.Details
PS:我无法更改API和服务器代码。