第十八章:表驱动法

表驱动法是一种编程模式,从表里面查找信息而不使用逻辑语句(if case)。

比如:把每一个字符的类型保存在一个用字符编码访问的数组里。
又比如:把每一个年龄的费率,放进用年龄作下标的数组里。
过度遵循面向对象的方法,可能对使得情况变得更复杂。可以考虑构造并使用一个经过深思熟虑的查询表。
构造查询键值:
复制信息,从而能够直接使用键值。为0-17岁之间的每个年龄都复制一份18岁以下的费率,这样就可以直接用该age来访问表。
转换键值使其能直接使用,可以把0-17都转换成17.
把键值转化提取成独立的子程序。
索引访问表:
经过索引去访问信息。
比如一个商店,有100件商品,但是商品编号在0-9999.
那么我们需要创建一个10000个键的索引,来指向这100条详细信息。
阶梯访问表:
把每个区间的上限写入一张表里,然后写一个循环。按照各区间的上限来检查分数。
必须谨慎处理端点数据
可以考虑用二分法取代顺序查找