美文网首页
表驱动法

表驱动法

作者: HulkHulkHulk | 来源:发表于2019-06-27 14:11 被阅读0次

表驱动法:表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了。

前言

今天在某乎看到一个贴子,题主大概是问:一个程序员的水平能差到什么程度?
我由于好点就点了进去,之后就看到一段代码,大概如下:

if (languageSelected == 0) {
   locale = "zh";
} else if (languageSelected == 1) {
   locale = "zh";
} else if (languageSelected == 2) {
   locale = "en";
} else if (languageSelected == 3) {
   locale = "ge";
} else if (languageSelected == 4) {
   locale = "sp";
} else if (languageSelected == 5) {
   locale = "fr";
} else if (languageSelected == 6) {
   locale = "du";
}

经过

乍一看,好像也没什么毛病,感觉还可以呀,简单易懂,别人接手也好维护。然后很不服气就去看评论,看看某乎大神有没有更好的写法。
之后看到一系列回答:有跟我一样感觉还可以啊,有说用switch看起来更好的,种种....最后看到一个说用表驱动法的。
上班的时候果断某度了一下这个xx驱动法,究竟有多么好。然后就用表驱动法重构了下这段代码,从n行代码变成了3行代码。

String[] locales = {"zh", "zh", "en", "ge", "sp", "fr", "du"};
for (int i = 0; i < 7; i++) {
    if (languageSelected == i) locale = locales[i];
}

结果

真香~
这段重构只是表驱动法中一个简单的用法,我们可以深入研究,更多的运用到日常开发中,不仅能干掉不少冗余代码,还能让同事对你的编码能力刮目相看。

相关文章

  • 微习惯养成第二天——读代码大全18章 表驱动法

    第18章 表驱动法 18.1 表驱动法使用总则(General considerations in using t...

  • 表驱动法

    简书 賈小強转载请注明原创出处,谢谢! 表驱动法是一种编程模式(scheme)--从表里面查找信息而不使用逻辑语句...

  • 表驱动法

    Table-Driven Approach表驱动法 表驱动法,用查表的方法获取数值 我们平时查字典以及念初中时查《...

  • 表驱动法

    表驱动法:表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事...

  • 表驱动法

    第一层大括号匿名内部类第二层动态语句块

  • 表驱动法

    阶梯访问表 用两个数组0-59 分是不及格 F级60- 79 是及格 E级80-84 是普通 D级85-89 是良...

  • 代码规范 : 表驱动法(远离if switch)

    表驱动法的准则 使用表驱动法的关注的两个核心问题: 1 怎样从表中查询条目的问题; 2 应该在表里面存什么两个核心...

  • 表驱动法学习与实践-第一篇-2018/02/07

    什么是表驱动法 我认为,表驱动法,字如其名。就是用表格自身的逻辑来代替代码里的条件判断硬逻辑。举例如下:如果,我们...

  • 测试用例设计方法篇-错误推测法

    大家好,我是十一。 前情回顾 上面一篇我们讲了判定表法,我们先来回顾下: 判定表法判定表驱动法是分析和表达多逻辑条...

  • iOS表驱动法去除if-else简化逻辑

    今天介绍用表驱动法优化代码中的逻辑 去除复杂繁多的if-else判断 WMZStrategy(demo) 所谓表...

网友评论

      本文标题:表驱动法

      本文链接:https://www.haomeiwen.com/subject/vbxrcctx.html