Java 业务数据对象的处理问题
資深大佬 : yumc 1
问题描述
有一个业务场景,入参是一个业务大对象,数据结构如下:
{ "baseInfo": [ {}, {} ], "headInfo": [ {}, {} ], "bodyInfo": [ {}, {} ], "footInfo": [ {}, {} ], ... "xxxInfo": [ {}, {} ] }
其中的”xxxInfo“数组都可以是空数组或空值,最多会有 15 个左右不同的”xxxInfo“对象类型,后端 Java 程序接收到参数之后需要对存在的信息都进行业务处理,有通用的处理,也有特殊的处理。
目前后端是使用Map<String, List<JsonObject>>进行接收,之后转换为Map<String, List<XxxInfo>>,直接遍历该 map 进行通用业务处理,通过map.get(xxx)取得指定成员进行特殊处理。
但是使用Map以及JsonObject这种结构来收参传参是我比较抗拒的,个人觉得不够优雅不够高效,所以想换种接收并处理数据的实现方式。
初步设想
直接使用大 Java 对象接收参数,大对象中包含所有可能出现的 List<XxxInfo>成员。但是这样做失去了使用 Map 结构时易于处理通用业务的优点了。
问题
-
那种数据结构更合理呢?除了以上两种方式,有没有更合适的数据结构呢?
-
如果使用我提到的使用 Java 大对象,那么如何处理通用业务逻辑更合适呢?
-
通过反射的方式实现遍历所有成员进行通用业务处理?
-
硬编码处理?
-
非常感谢各位答疑解惑,一起讨论
大佬有話說 (3)