stevenkang
2019-08-15 14:53:33 +08:00
请教大家一下,这算不算一种模式呀?
原来的
```
void typeProfcess(type) {
if (type == 'A1') {
// todo something
} else if (type == 'B2') {
// todo something
} else {
// todo something
}
}
```
改造后
```
static {
typeprocess.put('A1', a1TypeProcessListener)
typeprocess.put('A2', b2TypeProcessListener)
default = defaultTypeProcessListener
}
void typeProfcess(type) {
listener = typeprocess.containsKey(type) ? typeprocess.get(type) : default
listener.exec()
}
```
这样无论以后的 type 多复杂,只需要初始化的时候 put 进去对应的处理就好了。
特别是第三方系统各种报文 type,以前用 if 或者 switch 处理,这样改造了会不会更好?