C++代码重构案例分析 难懂的逻辑表达式
有这样一个例子:

看起来是比较简单的, 但是主要代码嵌套了两层, 而且大括号后面没有代码了, 那么这两个大括号就显得很多余. if语句的条件部分还算简单, 但是由于后面部分有两个表达式, 所以理解起来会有一点费劲, 看起来也有点别扭. 因此, 这个代码需要重构成更直观易懂的代码.
前文说过可以用串行if 或 条件取反的方式重构这样的代码. 如果将 || 拆成两个串行if语句的话, 是这样的:

这样理解起来会好一些, 但是多了很多大括号, 嵌套层次没变, 代码更多更乱了.
对条件取反是重构这样的代码的正解:

或是这样:

重构后的代码可以很清晰的看到什么时候才会执行主要代码, 而且去掉了全部的大括号, 所有代码都是处于同一缩进级别的(看起来很整齐). 唯一的缺点是x1和y1的值可能需要判断2次, 不过这种代价相比于获得的代码体验显然是不值一提的.