18-表驱动法
这一章似乎是把sql的思想用到编码中来?
411页,if else 用表来代替,先看书,后续再写明,比如月份,写一张表
问题1:怎样从表中查询条目
问题2:表中应该放什么内容?数据、action、指针
实例1:if else月份用表代替,一个数组就搞定了
实例2:保险费率,根据不同年龄、吸烟、单身等各种条件的if else,用表代替
把上面每种情况都放入enum中(除了年龄),写一个子程序传入这些enum和年龄
总结:当逻辑过多时,就用表来描述,表的实现可以使数组、enum等。
数据会复杂到无法用if else!!
题外话:怎么抽象?抽象就是找共同点。。。。
题外话:面向对象和面向过程:面向过程用一个个函数去解决问题,相应的,面向对象用一个个类代替一个个过程。
419页,21种消息就需要写21个类,这本书竟然否定了面向对象的方法!之前都没看到过这样的书!!
只创建少数几个子程序,分别负责打印每一种基本数据类型,没明白
数据比逻辑更为灵活
简单理解,所谓的上层就是界面层,所谓的底层就是一步步的子程序调用
解析和打印只用一个子程序,这个子程序里有case,但作者说可以抽象一个类,并生成6个子类来解决,作者对于抽象出来类这种操作,似乎很自然
如上的思考:
1)抽象出来的类和子类,都放在一个文件夹里?
2)基类的虚函数名称ReadAndPrint(驼峰),按单一原则,是否应该写成2个接口?
接下来又是用数组(表)来存放各类型的对象
filed[fieldType]:这就是表查找
维护:维护的意思就是增加内容,增加需求了
如果有增加了一种消息,那么无需修改代码(消息表还是要改的啊)
如果增加了一种类型,那么需要修改代码
使用多态和继承的设计,并不一定是好的设计!!!还可以用表驱动的方法代替!!423页。
面向对象方法的第一步就是去寻找共同点进行抽象
读到424页码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义