java 表驱动_表驱动法编程(数据驱动)

所谓表驱动法(Table-Driven Approach),简单讲是指用查表的方法获取值。

我们平时查字典以及念初中时查《数学用表》找立方根就是典型的表驱动法。在数值不多的时候我们可以用逻辑语句(if 或case)的方法来获取值,但随着数值的增多逻辑语句就会越来越长,此时表驱动法的优势就显现出来了。

查表的方式

在使用表驱动法的时候必须要解决的一个问题就是如何查表.

我们可以用非常直接的方式查一个表,就如前面示例讲的我就用数组下标就好了,但你发现有谁查字典甚至《数学用表》是直接依靠页码来查的吗?这是肯定行不通的。

常用的查表方式有

直接查询

索引查询

分段查询

直接查询,是指无需绕圈子,用下标的方式就能顺利的获取到数据;

C#代码 表驱动法获取星期名称

string[] dayNames=new string[]{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

dayName=dayNames[day];

只要一条语句就可以代替长长的if-else语句

如果某一天我们的网站要根据访客选择的语言来显示星期几的话

表驱动法仍然很简单

C#代码 表驱动法获取星期名称

dayName=dayNames[day,(int)GetUserLanguage()];

但如果是用if-else的话,那长度可就的翻番啊。

3.2 索引查找 key

在用一个简单方法无法将“英文单词”这样数据转换成表下标时,可以考虑使用索引来查找.在.net中的Dictionary 就是一个典型的例子

C#代码 获取一个用户对象

Dictionary users=GetAllUsers();

User tom=users["Tom"];

其实我们常用的DataTable就可以用索引查找的方式来获取数据

假如有个人员信息的table

C#代码 用索引查找方式从DataTable中获取第一个用户的姓名

DataTable userInfo=dal.GetAllUsersInfo();

name=userInfo.Rows[0].Columns["UserName"];

使用索引查询的主要优点就是代码的可读性大为增强,可维护性也更好

C#代码 用直接查找方式从DataTable中获取第一个用户的姓名

DataTable userInfo=dal.GetAllUsersInfo();

name=userInfo.Rows[i].Columns[3];

对比上一段代码,columns[3]很让人不知所谓;此外如果返回的Datable返回的列顺序改变的话就必须更改魔术数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值