controller - Controller 适合分层架构/DDD 的哪一层

标签 controller domain-driven-design n-tier-architecture presentation-layer application-layer

所以,我在这里看到了一些关于它的问题,但没有一个是具体的,也没有回答我的疑问。

在分层架构/DDD 应用程序中, Controller (常见 MVC 应用程序中的“C”)适合哪一层?我在不同的地方读到它可能在 UI 层或应用程序层,但我仍然无法理解什么是正确的层。

我正在阅读 Eric Evans 的 DDD,直到我读到这本书为止,我还无法弄清楚。我注意到他说如果 UI 层不复杂,您可以将其与应用程序层合并。这对 Controller 来说是一样的吗?

最佳答案

MVC 通常是一个 UI 架构,因此 Controller 将成为 UI 的一部分,调用应用程序服务,然后将响应转换回适合 UI 的格式。

如果您的应用程序复杂到足以证明 DDD 的合理性,那么它很可能复杂到足以证明分离 UI 和应用程序层的合理性。

尽管如此,思考和避免过度设计是一个很好的 react 。如果您判断现在不需要隔离,那么没有什么可以阻止您将 Controller 用作应用程序服务,并在需要时进行重构。

随着 MV* 架构位于客户端的单页 Web 应用程序的新时代,隔离自然而然地出现,因为应用程序层位于不同的层上。

关于controller - Controller 适合分层架构/DDD 的哪一层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42873809/

相关文章:

ruby-on-rails - 在 Rspec 中,如何测试没有路由的 Controller 操作?

java - Spring MVC - 重定向后获取模型数据

domain-driven-design - 域驱动设计中的搜索查询和搜索结果

c# - 将异步模型集合映射到异步 ViewModel 集合

php - Javascript PHP N 层架构

wcf - Entity Framework 、WCF 和更新

java - @Controller 的 Spring Boot Whitelabel 错误?

javascript - 从 php 制作的数组中提取数据并将其传递给 javascript twig

domain-driven-design - 我可以在 DDD 中有 "incomplete"聚合吗?

model-view-controller - MVC能否取代n层架构或者它是n层架构的一部分