java - 如何优化 Java 中的映射规则?

标签 java

有什么方法可以减少映射规则中 If else 条件的使用。我正在制定映射规则。有什么方法可以将这些规则存储在文件中,然后从文件中读取它们,以便优化我的代码:

public String MappingCondition()
{
    if (double_first_word.equals(mem) && double_second_word.equals(zair)) {
        s.append(map_m_zair_with);
        flag1 = "true";
    } else if (double_first_word.equals(paish) && double_second_word.equals(wawoo)
            && ((!last_string_word.equals(wawoo))) && flag38 == "false") {
        member0 = a1.indexOf(paish);
        number0 = a1.indexOf(wawoo);
        s.append(map_paish_waoo_with);
        flag2 = "true";
    } else if (double_first_word.equals(ein) && double_second_word.equals(zabar)) {
        member1 = a1.indexOf(ein);
        number1 = a1.indexOf(zabar);
        s.append(map_aein_zbar_with);
        flag3 = "true";
    } else if (double_first_word.equals(alif) && double_second_word.equals(zabar)) {
        member2 = a1.indexOf(alif);
        number2 = a1.indexOf(zabar);
        s.append(map_alif_zabr_with);
        flag4 = "true";
    } else if (double_first_word.equals(kaff) && double_second_word.equals(lam)) {
        member3 = a1.indexOf(kaff);
        number3 = a1.indexOf(lam);
        s.append(map_kaf_lam_with);
        flag5 = "true";
    } else if (double_first_word.equals(mem) && double_second_word.equals(alif)) {
        member4 = a1.indexOf(mem);
        number4 = a1.indexOf(alif);
        s.append(map_mem_aif_with);
        flag6 = "true";
    } else if (double_first_word.equals(gim) && double_second_word.equals(alif)) {
        member5 = a1.indexOf(gim);
        number5 = a1.indexOf(alif);
        s.append(map_jem_alif_with);
        flag7 = "true";
    } else if (double_first_word.equals(ray) && double_second_word.equals(zair)) {
        member6 = a1.indexOf(ray);
        number6 = a1.indexOf(zair);
        s.append(map_ray_zair_with);
        flag8 = "true";
    } else if (double_first_word.equals(tay) && double_second_word.equals(zair)) {
        member7 = a1.indexOf(tay);
        number7 = a1.lastIndexOf(zair);
        s.append(map_tay_zair_with);
        flag9 = "true";
    } else if (double_first_word.equals(dal) && double_second_word.equals(alif)) {
        member8 = a1.indexOf(dal);
        number8 = a1.lastIndexOf(alif);
        s.append(map_daal_alif_with);
        flag10 = "true";
    } else if (double_first_word.equals(choti_ya) && double_second_word.equals(zabar)) {
        member9 = a1.indexOf(choti_ya);
        number9 = a1.indexOf(zabar);
        s.append(map_yay_zabar_with);
        flag11 = "true";
    } else if (double_first_word.equals(wawoo) && double_second_word.equals(alif)) {
        member10 = a1.indexOf(wawoo);
        number10 = a1.indexOf(alif);
        s.append(map_wao_alif_with);
        flag12 = "true";
    }

    return "TBD";
}

最佳答案

简而言之,不要这样做。编写、维护和调试规则引擎是一种矫枉过正的行为,而且您正在重新发明轮子。

我建议看看 Drools

看看creating a simple rule engine in java

关于java - 如何优化 Java 中的映射规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659309/

相关文章:

java - 如何模拟局部最终变量

java - 如何在安卓应用程序中播放直播?

java - 在 GAE 中使用 HttpSession 时,我还需要做什么?

java - NekoHTML SAX 片段解析

java - 使用 SSL 证书触发器运行 Tomcat 服务器无法找到或加载主类 cert.pkcs12

java - 如何在选项卡 Activity 中调用微调器?

java - 使用 Java 类更新 OpenLDAP

java - MQTT服务错误 "socket failed: EPERM"

java - 如何从文件中检索特定字符串? (安卓)

java - 为什么字符串返回一个可测试的 boolean 值?