【发布时间】:2015-05-09 02:59:39
【问题描述】:
我有一个想要重构的“遗留”代码。
该代码基本上对服务器进行远程调用并得到回复。然后根据回复相应执行。
代码骨架示例:
public Object processResponse(String responseType, Object response) {
if(responseType.equals(CLIENT_REGISTERED)) {
//code
//code ...
}
else if (responseType.equals(CLIENT_ABORTED)) {
//code
//code....
}
else if (responseType.equals(DATA_SPLIT)) {
//code
//code...
}
etc
问题在于 if/else 分支有很多很多,并且每个 if 中的代码都不是微不足道的。
所以它变得难以维护。
我想知道最好的模式是什么?
我的一个想法是创建一个方法名称与 responseType 相同的单个对象,然后在 processResponse 中仅使用反射调用与 responseType 同名的方法。
这将清理 processResponse 但它将代码移动到具有许多/许多方法的单个对象,我认为反射会导致性能问题。
有没有很好的设计方法/模式来清理它?
【问题讨论】:
标签: java oop design-patterns refactoring