7

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

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

我正在阅读 Eric Evans 的 DDD,直到我读到这本书的时候我还没有弄清楚。我注意到他说如果 UI 层不复杂,您可以将其与应用程序层合并。这会对控制器产生同样的影响吗?

4

1 回答 1

9

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

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

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

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

于 2017-03-18T14:58:33.597 回答