1

所以,我在这里看到了一些关于它的问题,但没有一个是关于它的具体问题,也没有回答我的疑问。在分层体系结构/ DDD应用程序中,控制器(常见MVC应用程序中的“C”)适合于哪一层?我读过不同的地方,它可能在UI层或应用程序层,但我仍然无法围绕什么是正确的层。控制器在分层体系结构中的适用层/ DDD

我正在阅读埃里克埃文斯的DDD,直到我已经读完这本书的时候,我还没弄明白。我注意到他说如果UI层不太复杂,可以将它与应用程序层合并。这对控制器是否一样?

回答

4

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

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

不过,这是思考和避免过度工程的好反射。如果您判断现在不需要隔离,那么没有任何东西阻止您将控制器用作应用程序服务,并在需要时重新构造。

随着MV *体系结构驻留在客户端上的单页面Web应用程序的新时代,隔离自然而来,因为应用程序层位于不同的层上。