软件系统设计 表驱动法

表驱动法

  • 表驱动是一种编程模式(scheme)
    • pattern 是可以被实例化的
    • scheme 是一种方式
  • 当我需要有很复杂的逻辑判断的时候,我不会直接写出来,而是通过表中的数据来进行。
    • 表可以放在文件中,从而实现分离
  • 解决复杂逻辑问题的,适用范围包含了从代码中避免复杂的逻辑判断
    • 策略模式
    • 工厂模式
  • 实例
    • 使用复杂的逻辑对字符分类
    • 使用一个查询表对字符进行分类
    • chartype = table[inputchar]
  • 代码数据化的设计模式
    • 命令
  • 表驱动的问题
    • 存什么
      • 数据
      • 动作,虚函数表
    • 如何查表
      • 直接访问
        • 月份的天数
        • 浮标:提供水温,浮标位置
        • 简单工厂模式,增加的时候不满足开闭原则
      • 索引访问
        • 记录很大,节省空间
        • 即使没有节省空间,操作位于索引的时候,也比在主表的时候更方便
          • 数据库的视图,方便访问
          • 员工视图,工资试图
      • 阶梯访问
        • 通过每项命中的阶梯确定其归属
        • if x < 10 & x > 20
    • 索引表
      • 往高处爬,用上限
      • 区间表{50,65,75,90,100}
      • 当前的上限值 和 区间数值进行比较
      • 别名方法,减少了每次和上界的比较
      • 其他和他比的方法,不会使用这个,必须是随机产生的
    • 每年必考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值