《代码大全》阅读笔记-18-表驱动法
表驱动法是一种编程模式(scheme)——从表里面查找信息而不使用逻辑语句(if、case)。事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表来选择。在适当的情况下,采用表驱动法会比复杂的逻辑代码更简单、更容易修改,而且效率更高。
表驱动法必须要解决的两个问题:
1、如何从表中查询条目:
- 直接访问
- 索引访问
- 阶梯访问
2、表里应该存什么:
- data
- action/action ref
灵活的消息格式:metadata+core logic code based on config
核对表(表驱动法)
- 你考虑过把表驱动法作为复杂逻辑的替换方案吗?
- 你考虑过把表驱动法作为复杂继承结构的替换方案吗?
- 你考虑过把表数据存储在外部并在运行期间读入,以便在不修改代码的情况下就可以改变这些数据吗?
- 如果无法用一种简单的数组索引去访问表,那么你把计算访问键值的功能提取成单独的子程序,而不是在代码中重复地计算键值吗?
要点
- 表提供了一种复杂的逻辑和继承结构的替换方案。如果你发现自己对某个应用程序的逻辑或者继承树关系感到困惑,那么问问自己它是否可以通过一个查询表来加以优化
- 使用表的两大关键决策:1、如何访问表;2、表中存放什么
--》状态机
还真有人点开啊🤣随意随意😂