在MVC中,控制器和模型之间的界限在哪里?[已关闭]

2022-08-30 15:19:11

我见过几乎所有与路由无关的代码都传递到模型的代码。我还看到过一些代码,其中所有数据库持久性都由模型处理,但非数据库处理由控制器处理。

哪种方法更好?


答案 1

控制器和模型之间的界限实际上非常清晰。

模型是应用程序的核心。它包含解决编写应用程序所针对的问题所需的业务/域逻辑。模型通常分层到其他几个层中,例如持久性,服务,域等。一个常见的误解是模型只是数据库,就像一个常见的误解是数据库应该是ActiveRecord一样。

控制器(和视图)是表示层的一部分。控制器的唯一职责是接收和处理定向到应用程序的用户输入,并将其委托给模型中的相应部分。而已。它不应处理问题域的复杂应用程序流或代码。您希望控制器瘦弱,并用逻辑建模胖子。模型不应该知道C或V,你应该能够将V和C换成不同的表示层,而不必触摸你的M。

请参阅企业应用程序体系结构模式中的 MVC 摘录


答案 2

推荐