我需要为Java中的一个函数创建单独的服务类吗?

3

我有一个Person类,然后还有一个类:

Countries 
Languages

我有针对国家和语言的不同类。我需要在下拉菜单中显示所有国家和所有语言。所以我是否需要创建一个CountryService类和一个LanguageService类?其中包含像getLanguages和getCountries这样的函数?
寻找一个好的解决方案。
2个回答

2
答案取决于您对代码库的增长路径的期望。如果除了您提到的功能之外,您没有看到在CountryService或LanguageService类中添加其他内容,那么添加2个新类可能会过度设计解决方案。在这种情况下,更好的做法可能是沿着以下方式之一进行:将静态方法getLanguages添加到Language类中,将getCountries添加到Country类中。
如果您计划扩展CountryService和LanguageService类的角色和功能,则采用此方法是可以的。

1
你的解决方案并没有错,但是一般来说像 getAvailableCountries()getAvailableLanguages() 这样的方法会被声明为它们所在类的静态方法。这样做的话,你可以这样使用它们:
List<Country> lc = Country.getAvailableCountries();
List<Language> ll = Language.getAvailableLanguages();

你是否将这些对象保存在数据库中?如果是的话,我建议使用以下任一设计方案:
对象负责保存自己:
new Country("United States").save();
new Language("English").save();

类负责保存对象:
Country.save(new Country("United States"));
Language.save(new Language("English"));

1
这意味着所有静态方法应该在各自的类中,那么添加国家、删除国家函数呢? - John
基本上,没有理由拥有一个仅包含国家函数的“CountryService”类;将它们添加到“Country”类中是完全合理的,因为这是您搜索操作国家方法的第一个地方。 - Matheus Moreira
我正在使用MySQL和Hibernate。这意味着我需要在那个类中定义save()函数。 - John

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接