控制方法的圈复杂度, 让代码更有层次感
我一直觉得, 好的代码读起来应该像故事一样, 有前因, 有后果, 中间娓娓道来. 简单举个例子, 我们可能会遇到在方法中去for循环处理数据的情况. 比如在一个方法中, 套了三层循环.
List<String> orderCodeList = request.getOrderCodes();
// 第一层循环
for(String orderCode : orderCodeList){
// 查询单号对应的单据明细
List<OrderItem> items = this.orderItemService.getByCode(orderCode);
// 第二层循环
for(OrderItem item : items) {
// 执行操作1
// 执行操作2
// 执行操作3
// 第三层循环
for()
}
}
可以把每一层for循环都提取出来, 成为单独的一个方法, 来降低圈复杂度, 提高可读性
List<String> orderCodeList = request.getOrderCodes();
// 第一层循环
for(String orderCode : orderCodeList){
this.processSingleOrder(orderCode);
}
public void processSingleOrder(String orderCode){
// 查询单号对应的单据明细
List<OrderItem> items = this.orderItemService.getByCode(orderCode);
this.processItemsData(items);
}
public void processItemsData(){
for(OrderItem item : items) {
// 执行操作1
// 执行操作2
// 执行操作3
}
}