Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否需要为java中的一个函数创建单独的服务类_Java_Design Patterns_Class_Service - Fatal编程技术网

我是否需要为java中的一个函数创建单独的服务类

我是否需要为java中的一个函数创建单独的服务类,java,design-patterns,class,service,Java,Design Patterns,Class,Service,我有个人课,然后像 Countries Languages 我有针对国家和语言的单独课程。我需要在下拉列表中显示所有国家和所有语言。那么我需要创建CountryService类和LanguageService类吗?里面有像getLanguages和getCountries这样的函数吗 正在寻找一个好的解决方案。您的解决方案没有错,但通常像getAvailableCountries()和getAvailableLanguages()这样的方法在各自的类中声明为静态方法。这样,您可以像这样使用它

我有个人课,然后像

Countries 
Languages
我有针对国家和语言的单独课程。我需要在下拉列表中显示所有国家和所有语言。那么我需要创建CountryService类和LanguageService类吗?里面有像getLanguages和getCountries这样的函数吗


正在寻找一个好的解决方案。

您的解决方案没有错,但通常像
getAvailableCountries()
getAvailableLanguages()
这样的方法在各自的类中声明为静态方法。这样,您可以像这样使用它们:

List<Country> lc = Country.getAvailableCountries();
List<Language> ll = Language.getAvailableLanguages();
  • 该类负责保存对象:

    Country.save(new Country("United States"));
    Language.save(new Language("English"));
    

  • 答案取决于您对该代码库的期望增长路径

    如果除了您提到的函数之外,您没有看到在
    CountryService
    LanguageService
    类中添加多少其他功能,那么添加两个新类可能会过度设计解决方案。在这种情况下,更好的做法可能是在类中添加一个静态方法
    getLanguages
    ,在
    Language
    类中添加一个
    getCountries
    ,在
    Country
    类中添加一个
    getCountries


    如果您看到自己在一个CountryService和一个LanguageService类中扩展角色和功能,那么这种方法就可以了。

    这意味着所有静态方法都应该在各自的类中,那么添加conutry、删除country函数基本上是这样的,没有理由拥有一个
    CountryService
    类,它的唯一功能是保存国家功能;将它们添加到
    Country
    类中非常有意义,因为这是搜索在国家上运行的方法的第一个地方。这意味着我需要在该类中定义函数save()
    Country.save(new Country("United States"));
    Language.save(new Language("English"));