所以,我在这里看到了一些关于它的问题,但没有一个是具体的,也没有回答我的疑问。
在分层体系结构/DDD 应用程序中,控制器(常见 MVC 应用程序中的"C"(适合哪一层?我在不同的地方读到它可能在 UI 层或应用程序层中,但我仍然无法弄清楚什么是正确的层。
我正在阅读埃里克·埃文斯(Eric Evans(的DDD,直到我读到这本书的时候,我还想不通。我注意到他说,如果UI层不复杂,你可以将其与应用程序层合并。这对控制器来说是一样的吗?
MVC 通常是一个 UI 体系结构,因此控制器将是 UI 的一部分,调用应用程序服务,然后将响应转换为适合 UI 的格式。
如果您的应用程序足够复杂,足以证明 DDD 是合理的,那么它很可能足够复杂,足以证明隔离 UI 和应用程序层是合理的。
尽管如此,思考和避免过度工程是一个很好的反射。如果您判断现在不需要隔离,那么没有什么可以阻止您将控制器用作应用程序服务,并在以后需要时进行重构。
随着单页 Web 应用程序的新时代,MV* 体系结构位于客户端上,隔离自然而然,因为应用程序层位于不同的层上。