MVC 模式 - 思考它的正确方式 [重复]

Posted

技术标签:

【中文标题】MVC 模式 - 思考它的正确方式 [重复]【英文标题】:MVC pattern - the right way of thinking about it [duplicate] 【发布时间】:2014-01-13 15:28:34 【问题描述】:

阅读了数十篇关于 MVC 的文章,现在对我来说简直是一团糟。我正在尝试对我的项目做正确的事情,我正在从程序 php 重写为 oop,但是,我很困惑。

我确信,模型应该包含所有业务逻辑,这在 imo 中是有意义的。 不太确定视图。我应该将数据传递给 View,并相应地呈现模板,还是 View 应该只请求它需要的数据(来自更新的模型)?

在 SO 上也阅读了很多关于它的内容,但情况变得更糟了。答案不同,我有点迷茫。

什么是 MVC 模式的正确解释?(嗯,我知道这里和那里可能会有所不同,但重点应该保留)

MVC 1

MVC 2

【问题讨论】:

为避免疑问,您是在考虑 ASP.NET MVC 还是更一般的 Model-View-Controller 概念? 您使用什么语言/平台? MVC 不是万能的,也不是让你的代码更 X 的灵丹妙药。 我试图在一般水平上得到它,但我正在用 PHP 重写 web 应用程序 在这种情况下,不可能完全实现正确的 MVC 模式。 选项 2 看起来很正常。选项 1 是那些蹩脚的 PHP 框架是如何做的,所以他们可以通过说:OMGWTFBBQAWESOME WE DO MVC 来推销一些东西,而他们实际上所做的只是以与 MVC 无关的方式使用模型、控制器和视图等术语。 【参考方案1】:

根据我在 ASP.NET MVC 中编写 Web 应用程序的经验,我可以告诉你这是很棒的模式! 模型用于定义您的纯实体(通常是存储在数据库中的实体)。

控制器处理用户输入,例如,当我第一次编写站点的 url 时,请求到达控制器,控制器创建模型对象并将其传递给视图,以便可以根据控制器传递的模型呈现视图给它。

希望能帮到你!

【讨论】:

【参考方案2】:

恕我直言,...就这个理论细节给出一个**。只需按照您感觉最舒服的方式去做,但明确地尝试将关注点分开:

    保存和检索原始数据 对数据进行编程处理 呈现数据

因此,假设您有一个用户表,我将创建一个类,其中包含创建、编辑、删除用户等所需的所有不同 mysql 语句。 然后,您需要模板,例如用户详细信息页面。它只包含 html、css 等和 php 变量,可能还有一些循环或 ifs。

您的其余代码使用这两个组件并将结果提供给客户端。

【讨论】:

这不回答OP,但它是正确的答案。 +1。比试图将一些范式/模式塞进它不适合的东西并简单地应用常识要好得多。

以上是关于MVC 模式 - 思考它的正确方式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

以正确的方式python打印列表[重复]

ASP.NET MVC4 入门简介

求求你们别再用 kill -9 了,这才是 Spring Boot 停机的正确方式!!!

PHP MVC - 如何设计?

在 MVC 网站中使用来自 HttpModule 的重定向,“正确”的方式

MVC的局部视图