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页码