我正在研究几年前编写的代码。它用JSON构建POJO。 JSON有一个statusType
字段。所有其他字段的值取决于statusType
字段。如果statusType
为SUCCESS
,则填充字段successCode
,totalValue
,concession
等,另一方面,如果FAILURE
,则{ <1}},errorCode
,exceptionType
已填充。
retryCounts
POJO的定义如下:
{
"statusType": "SUCCESS",
"successCode": "20.304",
"total": 1000
}
{
"statusType": "FAILED",
"errorCode": "50.31",
"retryCounts": 2
}
客户端代码如下:
public class JsonPOJO {
public String statusType;
public String successCode;
public int retryCounts;
public int total;
public String errorCode;
}
以上代码分散在各地(大约10个地方)。很快,我们将获得另一个状态代码JsonPOJO pojo = buildPojo();
if (pojo.getStatusCode.equals(“SUCCESS”)) {
String successCode = pojo.getSuccessCode();
} else {
String errorCode = pojo.getErrorCode();
}
,这将在JSON中引入更多字段,然后POJO将会有更多字段,因此在代码检查"IN_PROGRESS"
时会有更多if / else语句。我不想通过这条路线。我想优雅地重构代码,这样如果我得到另一个状态代码(例如,statusType
),我就不需要再次触及整个代码库了。
我找不到(也许我的谷歌搜索技能很糟糕)任何模式,一般来说,处理这种情况,所以我在这里寻求专家的意见/想法。