gpt4 book ai didi

Java 耦合 - 我应该跨不同模块依赖服务层还是存储库层?

转载 作者:行者123 更新时间:2023-12-01 09:26:36 26 4
gpt4 key购买 nike

我已经实现了一个 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 个冗余类,这只会将调用委托(delegate)给 DAO。

服务层应用于所获取数据的业务逻辑。例如:如果您想为获取的国家/地区添加权限。

如果将来要向国家/地区添加额外的逻辑,最好进行重构并创建服务。

关于Java 耦合 - 我应该跨不同模块依赖服务层还是存储库层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com