正常很多人写代码会使用这样的逻辑写if代码也很符合当时的逻辑
例如:
if (true) { if (true) { if (true) { if (true) { if (true) { if (true) { } } } } } }
写的时候一时爽,回头维护像迷宫。看得第一眼都就头大。
可读性是真的差。
我们要如何让他变得好些?我们碰到这样的情况使用卫语句的方式处理。
public void doSomething(DomainA a) { if (a == null) { return ; //log some errorA } if (a.getB() == null) { return ; //log some errorB } if (!(a.getB().getC instanceof DomainC)) { return ;//log some errorC } assignAction; otherAction doSomethingA(); doSomethingB(); doSomthingC(); }
更为复杂的逻辑功能可以使用某些设计方式来解决。
例: 策略模式、状态模式等来实现,
其中卫语句
即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式,解决代码中判断
分支嵌套的问题,这是逆向思维的体现。