gpt4 book ai didi

c# - 基础设施服务能否返回 Bob 大叔的 The Clean Architecture 中的领域实体?

转载 作者:行者123 更新时间:2023-12-04 15:20:39 25 4
gpt4 key购买 nike

考虑:

用例层定义了一个接口(interface)

public interface IGeocoder
{
Coordinate GetCoordinate(Address address);
}

CoordinateAddress 是在域层(即 Uncle Bob 行话中的实体层)中定义的值对象。显然,用例(交互器)构造了 Address 并将其传递给 IGeocoder,期望返回一个 Coordinate

这会违反任何整洁架构规则吗?我是否应该改为通过接口(interface)传递 DTO,以便服务的实际实现不负责生成域实体?或者这样可以吗?

请注意,我看不出这与存储库(实体网关)之间有任何区别,后者的接口(interface)也将在用例层中定义,但在周围的接口(interface)适配器层中实现:

public interface IRestaurantRepository
{
// ...
}

最佳答案

谁负责基础设施服务的实现?是同一个团队吗?然后像存储库一样处理它应该没问题;直接返回域实体。它属于不同的团队吗?然后创建边界并传递专用 DTO 可能会有所帮助,因为它会减少耦合。

关于c# - 基础设施服务能否返回 Bob 大叔的 The Clean Architecture 中的领域实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63393006/

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