gpt4 book ai didi

model-view-controller - MVC 模式相对于老式的 3 层模式的主要优势是什么

转载 作者:行者123 更新时间:2023-12-03 08:47:52 25 4
gpt4 key购买 nike

我正在考虑在我的新项目中使用 MVC 模式,我可以清楚地看到能够将数据层(模型)更靠近表示层( View )的主要优势,这将允许稍微增加在应用速度上。但除了性能方面,MVC 与 View -逻辑-数据分层类型模式相比还有其他优势吗?

编辑:
对于那些感兴趣的人,我刚刚上传了我创建的用于测试 MVC 使用的示例 PHP 代码。我故意省略了所有安全检查以使代码更易于阅读。请不要过多批评它,因为我知道它可能会更加精致和先进,但是 - 它有效!欢迎提出问题和建议:这里是链接:http://www.sourcecodester.com/sites/default/files/download/techexpert/test_mvc.zip

最佳答案

被引用为 MVC 优势的关注点分离实际上也是 3-layer/3-tier 系统的进步。在那里,业务逻辑也是独立的,可以从不同的表示层使用。

一个主要区别是,在经典 MVC 中,模型可以有对 View 的引用。这意味着当数据更新时,模型可以将此数据推送回可能的多个 View 。最好的例子是一个桌面应用程序,其中数据以多种方式可视化。这可以像表格和图表一样简单。表中的更改(这是一个 View 中的更改)首先通过 Controller 推送到模型,然后将其推送回图形(另一个 View )。然后图表会自行更新。

由于桌面开发正在走下坡路,很多程序员只在一些 Web 变体中接触到 MVC,例如。通过 Java EE 中的 JSF。

在这些情况下,模型几乎从不引用 View 。这是因为 Web 主要是基于请求/响应的,并且在服务请求后,服务器无法发送附加信息。 IE。从模型推送到客户端的更新将毫无意义。使用反向 ajax/comet,这种情况正在发生变化,但是许多基于 Web 的 MVC 框架仍然没有充分利用这一点。

因此,在基于 Web 的 MVC 的情况下,M、V 和 C 之间的典型“三角形”较少,并且 MVC 变体实​​际上比“真正的”MVC 更接近 n 层模型。

另请注意,一些 Web MVC 框架在 M、V 和 C 之间有一个中间管道部分,称为支持 bean (Java/JSF) 或代码背后 (ASP.NET)。在 JSF 中, Controller 由框架提供, View 通常不直接绑定(bind)到模型,而是使用此支持 bean 作为中介。支持 bean 非常 slim ,基本上只是以一种方式从模型中预取数据,并将特定于模型的消息(例如异常)转换为特定于 View 的消息(例如一些人类可读的文本)。

关于model-view-controller - MVC 模式相对于老式的 3 层模式的主要优势是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com