Ray*_*nos 29
他们都是.
MVC是一种模糊的模式.
我对MVC的看法是:
调节器
Object具有一组模型,并具有查看和编辑模型的方法.它与Models对话并返回视图的实例,并在其上应用模型.
视图
是否附加了模型的定义,并且只是一组显示特定模型的功能.
模型
封装数据.有返回状态和改变状态的方法.
//Controller
import Views
class Controller
private Models
//View
import Model
class View
//Model
class Model
Run Code Online (Sandbox Code Playgroud)
模型不需要了解有关视图/控制器的任何信息.View需要知道Model的定义.控制器需要拥有模型并需要知道视图的定义.
你可以更紧密地结合它们,这是可选的.
严格来说,MVC是一种过时的模式.粗粒度说,它引入了View和Model之间的依赖关系,因为Model直接更新View状态(http://www.mimuw.edu.pl/~sl/teaching/00_01/Delfin_EC/Overviews/MVC.htm),如图所示在图4中,您可以看到模型和视图之间的直接交互,根据MVC原始,历史公式,这是不可取的.事实上,今天我们已经修改了MVC的版本,有时我们会描述MVP并称之为MVC.首字母缩略词"MVC"已被充分利用,除了实现细节和责任定义之外,任何有三个元素(模型,视图和控制器)的东西基本上都是MVC.当您描述它们时,MVC和MVP之间的差异非常微妙,并且存在于View和Presenter(Controller)职责的定义中.事实上,Martin Fowler几年前给了MVP(和MVC)他的告别(http://www.martinfowler.com/eaaDev/ModelViewPresenter.html),从他的角度来看,我们可以找到一个"新"的定义. "模式称为演示模型(参见http://martinfowler.com/eaaDev/PresentationModel.html)或PM.Microsoft已为其WPF和Silverlight技术定义了另一种模式,称为Model-View-View-Presenter,或MVVM(请参阅http://msdn.microsoft.com/en-us/magazine/dd419663.aspx),其中包含Presentation Model作为他的灵感.我想你可以看看所有这些家伙,看看他们有多么相似(和不同).在我看来,基本的想法是,演示数据和行为保留在Presenter中,模型不知道View(因此图4关闭,甚至也是MVC),并且您应该能够更改View(或支持不同的View)实现)以无痛的方式,与Presenter和Model分离.演示模型可以提供此功能,并且使用当前技术实现有效且彻底.