建模分层数据我有多个客户端在不同的格式,这是我想要写一个抽象返回相同的数据给我。使用枚举在Java中
Client A: {
Category_A1:
Sub_Category_A1_1,
Sub_Category_A1_2
Category_B1:
Sub_Category_B1_1,
Sub_Category_B1_2
}
Client B: {
Category_A2:
Sub_Category_A2_1,
Sub_Category_A2_2
Category_B2:
Sub_Category_B2_1,
Sub_Category_B2_2
}
这里客户端A和B都返回相同的类别'A'和'B',但在响应中使用不同的字符串。
我想抽象Category_A和Category_B这样Category_A1,Category_A2将映射到Category_A和Category_B1,Category_B2将映射到Category_B。
这同样适用于 - 行业标准,以及 - 一个类别只能有与之相关联的子类别的具体名单。我也想抽象子类别,同时保留它属于哪个类别的信息。
我想用枚举多个类别映射到一个:
public enum MyCategory {
MY_CATEGORY_A(new String[]{ CATEGORY_A1, CATEGORY_A2 }),
MY_CATEGORY_B(new String[]{ CATEGORY_B1, CATEGORY_B2 });
private String[] categories;
Category(String[] categories) {
this.categories = categories;
}
public MyCategory getMyCategoryFromExternalCategory(final String externalCategory) {
}
};
什么我发现很难为映射的子类别相同的方式,同时维持该类别及其子类别列表之间的关联。
什么可以成为实现这个使用枚举一个干净的方式 - 因为我没有状态,或与我不想使用显式类这样做的类别和子类别的任何其他信息。