gpt4 book ai didi

clean-architecture - 关于 Clean Architecture 中实体对 Gateway 的依赖

转载 作者:行者123 更新时间:2023-12-05 05:40:44 25 4
gpt4 key购买 nike

我对 Clean Architecture 中的 Gateway to Entity 依赖有疑问。我认为以下同心圆图形经常被介绍为整洁的架构。

enter image description here

在上图中,Gateway并没有直视Entity。但是,还有另一个著名的整洁架构示例。 (图二)在真正创建一个类时,我认为它会有以下结构。

enter image description here

看这里,起着Gateway作用的DataAccessInterface指的是Entity。我认为第一个图中的网关违反了不引用实体的规则。这是什么意思? ??

还有,如果Gateway是指Entity,如果你想从Gateway返回你自己的错误,你需要把你自己的错误定义放在Entity中。原来的错误是应用特有的错误,感觉不符合领域逻辑。这样的定义方法是否适用于整洁的架构? ??

最佳答案

最重要的是依赖指向内部。这意味着,包含最重要业务逻辑的层不应依赖于外层。

如果网关直接与域中的某个实体(或逻辑层,在您引用的名为“实体”的图表中)一起工作,并且有充分的理由直接访问它并绕过应用层 总而言之,这是一个有效且务实的决定。

有时没有复杂的应用程序逻辑可以证明在应用程序层中引入间接寻址是合理的。但是,最好密切关注此类决策,并确保在从网关转换到实体层的应用程序服务变得有意义时重构应用程序。只需确保您使用实体(业务)层提供的内容以适应业务逻辑和不变量。一旦您不得不更改实体中的某些内容以适应外层的某些需求,这就是一种气味,并且肯定需要一些间接(例如在两层之间进行转换的应用层)。

关于错误,这是一个类似的决定。只要实体(在域逻辑层)只需要知道从业务角度来看有意义的错误,如果它符合网关正在与之通信的“外部”世界的需要,它可以直接使用该错误

再次强调,这取决于您的情况。请记住,重要的是NOT扩展业务/域逻辑层中的实体只是为了满足任何与基础架构相关的需求,例如提供错误信息的不同结构或没有的其他技术细节在商业世界中的意义。

关于clean-architecture - 关于 Clean Architecture 中实体对 Gateway 的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72350799/

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