美文网首页
表驱动法

表驱动法

作者: 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];
    }
    

    结果

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

    相关文章

      网友评论

          本文标题:表驱动法

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