【问题标题】:Is MVC specific to Web application?MVC 是特定于 Web 应用程序的吗?
【发布时间】:2015-04-10 21:05:25
【问题描述】:

我在这里可能听起来很天真。

MVC 是否仅适用于 Web 应用程序?我在 MVVM 上工作了好几天,我看到人们告诉 MVVM with WPF 是 MVC 的 Windows 版本。 到目前为止,MVC 或 MVVM 的替代解决方案是什么?难道没有比现在发现的更好的设计模式吗?

我在这里对 .NET 非常感兴趣。

【问题讨论】:

  • Mvvm 不是 mvc,它是一个现代的 mvp (model-view-presenter)。更多关于这里joel.inpointform.net/software-development/… MVP 在winforms 开发中很少使用,我相信这是因为尽管它有优势,但它有点复杂。
  • MVC 是一种软件架构范式,常用于 Web 应用程序,但并非 web 独有。 MVVM 也是一种架构范式。遵守任何一个都完全取决于您想要完成的任务,并且没有具体原因不能同时使用两者(例如,在 MVC 应用程序中使用 knockout.js)

标签: c# .net design-patterns model-view-controller mvvm


【解决方案1】:

没有。 Mvc 并非特定于 Web 应用程序或 .net。

所有 mvx 模式都有共同的视图和模型。视图关注数据的显示,模型传递数据。

在 mvc 中,数据由将数据放入视图的控制器从模型中提取出来。用户交互从视图委托给作用于模型的控制器。 View 和 Model 现在互不相干。

随着数据绑定等新技术的出现,mvc 变得庞大。引入了 Mvp。它允许视图直接使用数据绑定到模型,绕过现在称为演示者的控制器。演示者协调视图和模型,但职责较少。

后来 mvp 被 mvvm 取代。这里模型和视图再次完全分离并且彼此不认识。 Viewmodel 是专门针对视图需求而设计的模型。它还处理控制器的职责。

在我看来,asp.mvc 并不是真正的 mvc。您将模型的对象或特殊设计的视图模型分发给剃须刀视图,因此它要么是 mvp,要么是 mvvm,并添加了一个控制器来管理其他部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多