我们目前有两个客户代码“CUSTA”和“CUSTA”。CUSTA 可以执行操作 A1、A2、A3、A4、A5、A6。CUTB 可以根据某些条件执行操作 B1、B2、B3、B4、B5、B6。目前他们不期待更多的客户代码,但我希望设计灵活。这些可以存储在数据库中,但正如我所提到的,因为很长一段时间内不太可能有另一个客户代码,它需要用代码表示。
应用程序逻辑基本算法看起来像
if ConditionX is true
then if customerCode is "CUSTA"
then applicableOperation = 'A1'
else
if customerCode is "CUSTB"
then applicableOperation = 'B1'
end
else
if ConditionY is true
then
if customerCode is "CUSTA"
then applicableOperation = 'A2'
else
if customerCode is "CUSTB"
then applicableOperation = 'B2'
end
else
....................................
我可以编写 switch 语句等来清理算法,但我主要关心的是如何表示“CUSTA”、“CUSTA”、“A1”、“A2”、“A3”、“A4”...“A6” “B1”、“B2”...“B6”。客户代码是否像枚举一样
public enum CustomerCode { CUSTA, CUSTB }
public enum OperationsForA{ A1, A2, A3,...A6 }
public enum OperationsForB{ B1, B2, B3...B6}
我应该创建一个Map
where 键是 CustomerCode 并添加相应的操作作为值。
解决这个问题的最佳解决方案是什么。例如,将来添加“CUSTC”也应该是灵活的。
谢谢