18章--表驱动方法-(1)

         表驱动法是一种编程模式(scheme)--从表里面查找信息而不使用逻辑语句(if和else)。根据代码大全中的描述,凡是能通过逻辑语句来选择处理的事物,都可以通过查表来选择。但是对于简单的逻辑,则不宜使用表驱动法,表驱动发更加适合复杂的逻辑。

         适当情况下使用表驱动法的几个好处:

  1. 生成的代码简单;
  2. 容易修改维护;
  3. 效率更高。
        使用表驱动法存在的问题:
  1. 怎样从表中查询数据,查询数据的方法(直接访问、索引访问、阶梯访问);
  2. 表中应该存储什么样的数据(数据还是动作action)

  1. 直接访问:也就是可以直接从表中查询到需要的结果信息,而不需要一些复杂的逻辑。类似数据结构中的顺序查找、二分查找等。
  2. 索引访问:当通过直接访问无法实现或者效率很低时,就要考虑索引访问,通过用一个基本类型的数据从一张索引表中查出一个键值,然后再用这一键值查询感兴趣的主数据。(主要两个优点:1) 数据很大时,通过索引访问可以节省空间;2) 有时没有节省空间也会带来时间的节省。
  3. 阶梯访问:基本思想是表中的记录对于不同的数据范围有效,而不是对不同的数据点有效。这种方法比索引访问节省空间。

表驱动法的要点:
  1. 对复杂的逻辑和继承结构提供一种替换方案;
  2. 决定替换后,考虑何种方法访问表;
  3. 应该把什么内容存入到表中。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值