什么是"表驱动方法"?
比尔盖茨在1:05 的第二个Windows Vista商业广告中提到过.
表驱动方法是允许您在表中查找信息而不是使用逻辑语句(即case,if)的方案.在简单的情况下,使用逻辑语句更快更容易,但随着逻辑链变得越来越复杂,表驱动代码比复杂逻辑更简单,更容易修改和更高效.
参考:麦康奈尔,史蒂夫.代码完成,第二版.雷德蒙德(华盛顿):微软,2004年.打印.第411页,第1段.
引用的视频有比尔盖茨从史蒂夫麦康奈尔的书中完整阅读.杰夫阿特伍德在他的博客中提到了这一点(YouTube链接匹配).
从Code Complete,第2版:
表驱动方法是一种允许您在表中查找信息而不是使用逻辑语句(if和case)来查明信息的方案.
McConnell在他的示例中使用数组作为他的"表",但我认为这个概念可以应用于数据库表或其他任何类似表的表.
通过一个例子可以最好地解释这个概念.
假设你正在经营一家餐馆,并为每个餐桌号码设置不同数量的座位.
获取特定表的席位数的逻辑可能看起来像
if table number == 1 table has 4 seats else if table number == 2 table has 8 seats . . .
因此,如果您有50个表,那么您将拥有100行代码来确定座位数.
使用表驱动的方法,你可以创建一个数组,其索引代表表号,代表座位数的值,所以你的逻辑看起来像
tables [] = {4, 8, 2, 4, ...} table seats = tables[table number]
这更简单,更短,更容易维护.