使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段,
表驱动法是一种编程模式(schema)—— 从表里面查找信息而不使用逻辑语句(if/else, switch/case)。事实上,凡是能通过逻辑语句来选择(路由,分发)的事物,都可以通过查表来选择。
if (语句A)
{
语句B;
}
else
{
语句C;
}
上述代码,语句A
和语句B
便存在着一种映射和对应关系,语句非A
和语句C
同样存在着一种映射关系。
1. 简单举例
各月天数:
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
更具体地讲,这也是一种直接访问表法;