【问题标题】:How can I Optimize my mapping rules in Java?如何在 Java 中优化我的映射规则?
【发布时间】:2017-04-27 13:28:25
【问题描述】:

有什么方法可以减少映射规则中 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";
}

【问题讨论】:

  • 看看流口水

标签: java


【解决方案1】:

简而言之,不要这样做。编写、维护和调试规则引擎太过分了,而且你正在重新发明轮子。

我建议看看Drools

看看creating a simple rule engine in java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多