※ 引述《twoseven (Tse)》之铭言:
: 当然这还是要看愈到的情况
: 除非真的是个别的条件又有个别的支线要处理 我才会想包起来
: 我曾经看过一个vb6用包起来只是判断条件就包了10层..还好很整齐
: 不过要是哪天突然碰到要维护光是要决定改第几层就很头大
: 新手上路..请尽量鞭策:)
就我个人三种风格都碰过的经验来说,用Nested if有个很明显的问题,就是
维护性。
软件有种自我繁殖的惰性,所以当一个程式码用了三层的if来做validation,
很难不保证未来接手的人会让他长出第四五六层。
这时候guard condition或者short circuit evaluation在维护性上就有其优势。
所以在我们公司里面做code review时我反而会要求相反的趋势,把Nested if改
成guard condition或者short circuit evaluation......
维护过慢慢长出十层if+else的程式后,我一直觉得Nested if是赶专案加上懒惰
造成的产物,懒惰会付出代价的......