Java 程序结构

Java Program Structure

我正在构建一个应用程序,根据用户从下拉菜单中的选择,我可以用不同的语言打印一个词。我当前的方法有效但是效率不高,因为我从嵌套 class 获取数据并从完全不同的 class 请求它,这需要嵌套 [=15= 中的每个单词的一行代码].我怎样才能以更 efficient/easier 的方式实现这一点?以下是上述代码的基本格式:

public class words {

   class example {
       String english = "example";
       String chinese = "example_in_chinese";
   }

   class example2 {
       String english = "example2";
       String chinese = "example2_in_chinese";
   }
}


public class getWords {

    words word = new words();
    words.example example = word.new example();
    words.example2 example2 = word.new example2();

    */ I have to repeat the above line for each of the 20 
    words I have in a nested class
    /*

}

也许您可以使用责任链设计模式来确定哪种语言适合打印。

用代码显示需要很长时间,但我会给你提示。

遍历对象以找到具有给定下拉值的可打印语言。 如果您找不到合适的打印语言,请忽略它。

https://www.tutorialspoint.com/design_pattern/chain_of_responsibility_pattern.htm

我觉得你可以试试用地图。

public class Words {
    static Map<String, String> example1 = new HashMap<String, String>();
    example1.put("english", "example");
    example1.put("chinese", "example_in_chinese");

    static Map<String, String> example2 = new HashMap<String, String>();
    example2.put("english", "example2");
    example2.put("chinese", "example2_in_chinese");
}

所以你可以打电话

Words.example1.get("english");

或者更进一步,您可以创建枚举语言

enum Language {
    ENGLISH, CHINESE
}

public class Words {
    static Map<Language, String> example1 = new HashMap<Language, String>();
    example1.put(Language.ENGLISH, "example");
    example1.put(Language.CHINESE, "example_in_chinese");

    static Map<Language, String> example2 = new HashMap<Language, String>();
    example1.put(Language.ENGLISH, "example2");
    example1.put(Language.CHINESE, "example2_in_chinese");
}

Words.example1.get(Language.ENGLISH);

只是为了减少打字错误的可能性。