有用。
当 if-else 需要判断的条件非常多的时候,可以考虑使用卫语句来提前把不符合条件的情况过滤出来。
就是把
1 | if ($user != null) { |
改写成这种:
1 | if (condition1()) { |
在《阿里巴巴 Java 开发手册(华山版)》的第一章《编程规约》也有提到:
【推荐】表达异常的分支时,少用if-else方式,这种方式可以改写成:
1 | if (condition) { |
说明:如果非使用if()…else if()…else…方式表达逻辑,避免后续代码维护困难,【强制】请勿超过3层。
正例:超过3层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式,解决代码中判断分支嵌套的问题,这是逆向思维的体现。
示例如下:
1 | public void findBoyfriend(Man man) { |