减少你的代码嵌套,让你的代码可读性大大提升

正常很多人写代码会使用这样的逻辑写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();
}

更为复杂的逻辑功能可以使用某些设计方式来解决。

 
例: 策略模式、状态模式等来实现,

其中卫语句

即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式,解决代码中判断
分支嵌套的问题,这是逆向思维的体现。


策略模式:https://www.cnblogs.com/annkiny/p/12589431.html

可以看看这篇文章:https://www.jianshu.com/p/57c065b124c4

posted @ 2020-07-22 11:39  Annkiny  阅读(293)  评论(0编辑  收藏  举报

福建C# .net  技术群