我已经实现了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();
}
}
答案 0 :(得分:1)
如果您没有任何其他逻辑,例如在这种情况下,我认为最好直接调用DAO。
优点:始终调用服务,允许您从应用程序代码中完全分离DAO层。 缺点:您将为每个dao创建2个冗余类,它们只会将调用委托给DAO。
服务层应该用于获取数据的业务逻辑。例如:如果要向获取的国家/地区添加权限。
如果将来会向国家/地区添加其他逻辑,最好进行重构并创建服务。