我正在使用多个外部系统,所有这些系统都返回一个状态属性.
此状态属性可以是外部系统之间的不同值,但必须映射到系统上的特定状态值.
我有一个单独的类(适配器)来处理每个外部系统
例如
我的系统的状态值是
{Pending,Booked,Arrived,InProgress,Complete}
现在,外部系统A可能具有以下值
{Unknown,Pending,Booked,Accepted,Arrived,POB,Complete}
外部系统B可能具有以下值
{Waiting,Booked,Arrived,InProgress,Complete}
等等
现在我需要将外部系统值映射到我的系统值.
例如.
对于外部系统A.
未知,待定 - >待定
已预订,已接受 - >已预订
到了,POB - > InProgress
完成 - >完成
对于外部系统B.
等待 - >等待
预订 - >预订,
到了,InProgress - > InProgress
完成 - >完成
现在我已经将它抽象为一个辅助方法MapState,每个适配器使用它来获取状态值.此方法具有字符串参数externalsystem和externalsystemstate,并使用switch语句将外部系统状态映射到我的系统状态.
我认为这非常简单,我相信有更优雅的解决方案
有什么建议?