我已经实现了CodeService,它将从代码表中检索国家列表。
在我的ShippingService中,我想检查订单是否运送到某个国家。
在这种情况下,我应该使用CodeService还是CodeDAO来检索国家/地区列表。
public interface CodeService {
public List<String> getCountryList();
}
@Service
public class CodeServiceImpl implements CodeService {
@Autowired
CodeDAO codeDao
public List<String> getCountryList() {
return codeDao.getCountryList();
}
}
@Service
public class ShippingServiceImpl implements ShippingService {
@Autowired
CodeDAO codeDao;
@Autowired
CodeSevice codeService;
public void addOrder(Order order) {
List<String> countries = codeService.getCountryList();
//List<String> countries = codeDao.getCountryList();
}
}
最佳答案
如果您在这种情况下没有任何其他逻辑,那么我认为最好直接致电DAO。
优点:始终调用该服务,将使您可以完全将DAO层与应用程序代码分开。
缺点:您将为每个dao创建2个冗余类,这只会将调用委派给DAO。
服务层应用于获取的数据上的业务逻辑。例如:如果要向获取的国家/地区添加权限。
如果将来要向这些国家/地区添加其他逻辑,则最好进行重构并创建服务。