企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
如果你跟真正的面向对象布道者交谈,他们很快就会谈到`switch`语句的邪恶。在他们看来,任何`switch`语句都应该用以多态取代条件表达式(272)消除掉。我们甚至还听过这样的观点:所有条件逻辑都应该用多态取代,绝大多数`if`语句都应该被扫进历史的垃圾桶。 即便在不知天高地厚的青年时代,我们也从未无条件地反对条件语句。在本书第1版中,这种坏味道被称为“`switch`语句”(Switch Statements),那是因为在20世纪90年代末期,程序员们太过于忽视多态的价值,我们希望矫枉过正。 如今的程序员已经更多地使用多态,`switch`语句也不再像15年前那样有害无益,很多语言支持更复杂的`switch`语句,而不只是根据基本类型值来做条件判断。因此,我们现在更关注重复的`switch`:在不同的地方反复使用同样的`switch`逻辑(可能是以`switch/case`语句的形式,也可能是以连续的`if/else`语句的形式)。重复的`switch`的问题在于:每当你想增加一个选择分支时,必须找到所有的`switch`,并逐一更新。多态给了我们对抗这种黑暗力量的武器,使我们得到更优雅的代码库。