Definition 我无法理解MVC,它是什么,它不是什么?
我不知道什么是MVC,我应该具备什么样的思维方式或编程模式,这样MVC的东西就能瞬间“点亮”我的脑袋?如果不是立即,我应该首先尝试做哪些简单的程序/项目,以便将MVC带来的精巧的东西应用到编程中 OOP直观且简单,对象无处不在,使用OOP范例进行代码重用的好处会立即惠及所有人。你可能会在几分钟内和任何人谈论OOP,并讲一些例子,他们会明白的。虽然OOP在某种程度上提高了编程的直观性,但MVC似乎恰恰相反。我有一些消极的想法,一些未来的雇主(甚至客户)会因为我没有使用MVC技术而看不起我 虽然我可能了解了MVC,但当我尝试将其应用到我自己的项目中时,我不知道从哪里开始 有些程序员甚至对如何正确实现MVC有不同的看法 以Jeff关于MVC的帖子为例: 视图只是您如何放置 数据输出,显示方式。如果你 例如,需要一些数据的子集吗 例如,我的观点是这是一个 模型的责任 因此,可能有些程序员使用MVC,但不知何故,他们无意中使用视图或控制器来提取数据的子集 为什么我们不能对如何正确实现MVC有一个明确的定义Definition 我无法理解MVC,它是什么,它不是什么?,definition,model-view-controller,Definition,Model View Controller,我不知道什么是MVC,我应该具备什么样的思维方式或编程模式,这样MVC的东西就能瞬间“点亮”我的脑袋?如果不是立即,我应该首先尝试做哪些简单的程序/项目,以便将MVC带来的精巧的东西应用到编程中 OOP直观且简单,对象无处不在,使用OOP范例进行代码重用的好处会立即惠及所有人。你可能会在几分钟内和任何人谈论OOP,并讲一些例子,他们会明白的。虽然OOP在某种程度上提高了编程的直观性,但MVC似乎恰恰相反。我有一些消极的想法,一些未来的雇主(甚至客户)会因为我没有使用MVC技术而看不起我 虽然我可
而且,当我搜索MVC.NET程序时,大多数应用于web程序,而不是桌面应用程序,这让我更感兴趣。我的猜测是,这对web应用程序最为有利,桌面应用程序中的混合视图(html)和控制器(程序代码)没有太多问题。你可以从阅读答案开始。我发现MVC范型通常过于臃肿。简单的模型/视图(没有控制器)更容易理解和实现 大多数人都知道,某些类保存数据(模型)和加载/保存数据的逻辑,而另一个类显示该数据(视图)。
给它一些胶水来加载一个文档(比如文档管理器),你就完成了。MVC确实很适合WebApps。大多数webapp都是从数据库获取数据,稍加处理,然后将数据显示给用户。DB是您的模型级别,controller进行处理,view只发出HTML代码 有些人认为控制器应该从模型中获取数据并将其提供给视图,但我认为这意味着控制器是无用的,因此它只是MV编程模型:) 但我理解它们,如果你使用某种处理,你会不止一次地使用它,因此最好在模型级别这样做,它可以通过这种方式在应用程序的不同部分之间共享 你不必为桌面应用程序使用MVC,事实上,我不确定这种模式是否适用于大型应用程序,而桌面应用程序通常都是如此。您经常希望使用“组件”,即您可以在应用程序的不同部分提供相同的数据并从中获得相同的UI,这只会导致使用MVC复制代码。一个“典型”的MVC实现将具有:
- 视图-呈现数据供最终用户查看,并为其提供与数据交互的用户界面对象(但不处理该交互)
- 控制器-处理用户交互和在视图和模型之间传输数据的操作
- 模型-为应用程序处理数据存储和数据表示
需要注意的是,蒙皮实际上只是一个特定层的一个方面,您可以在模型层更改数据源,以及操作该数据的方法(例如,一种新算法)在控制器层,逐步推出它们,而不必更改其他层。也许下面的内容可以让您参考更多的实现。它有指向的链接。MVC是一种模式,它与OOP配合得很好,这两种模式不是互斥的——我认为它们是正交的。MVC模式试图将显示代码(V)与数据(M)和控制流(C)分开 如果你搜索“MVC.Net”,你几乎肯定会得到很多web应用程序的点击率,因为ASP.NETMVC框架是最近发布的,这是一个MVC模式在ASP.Net编程中的应用,因此它被用于开发网站。正如您所建议的,没有理由不将该模式应用于桌面应用程序 如果您在使用MVC时遇到困难,我建议您通读模式,了解人们如何谈论使用模式建模问题/解决方案,然后更详细地了解MVC 编辑参考Fowler,他的书e是阅读MVC和其他模式的绝佳场所。我喜欢Marti的方式