MVC WITH Web Applications的实际模式是什么?

时间:2012-01-01 11:54:42

标签: model-view-controller design-patterns architecture mvp

混淆是因为互联网上浮动的MVC架构图不同: 由于问题太宽泛,我想专注于用于WebApplications的MVC。

说:Zend Framework

example1:可能是我见过的最好的一个。 MVC

example 2: MVC

example 3:
MVC
模型视图控制器概念。实线表示直接关联,虚线表示间接关联(例如,通过观察者)。

  

我主要关注的是,视图如何与控制器相互作用。模型反之亦然。

     
      
  • 视图应该直接与模型交互吗?
  •   
  • 模型应该直接更新对视图的任何更改吗?
  •   
  • example2 中的图表是对MVC的错误解释,因为它看起来像MVP 1 2图案。
  •   

MVC与MVP的一个例子: enter image description here

1 个答案:

答案 0 :(得分:-2)

由于没有发布答案,我决定发布一个。这在很大程度上基于 模型 - 视图 - 控制器(MVC)架构(WEB)(PDF)。指出:Tom Ingram(谢谢)。

文章是:
John Deacon是一名讲师和作家。面向对象的分析与设计:一种实用的方法 方法。 (有关作者的更多信息,请参阅About the author here

部分

现在,最适合MVC架构的图表是:
MVC

这三部分:

Model - 视图 - 控制器:

  

我们将调用应用程序/域的不变本质,模型(以单数形式)。在面向对象的术语中,这将包括一组模型和支持底层问题的类,因此它们将趋于稳定并且与问题本身一样长寿。
  模型(类)应该知道多少与外界的联系?没什么,绝对没有。

模型 - View - 控制器:

  

对于给定的情况,在给定的版本中,将有一个或多个与模型的接口,我们将其称为视图(复数)。   在面向对象的术语中,这些将由一组类组成,这些类将“窗口”(通常是实际窗口)提供给模型,例如。

     
      
  • GUI /小部件(图形用户界面)视图
  •   
  • CLI(命令行界面)视图
  •   
  • API(应用程序界面)视图。
  •   
     

或者:

     
      
  • 新手视图,
  •   
  • 专家观点。
  •   
     

虽然视图通常是图形化的,但它们不一定是。

     

有关该模型的观点有何见解?他们必须知道它的存在。他们必须了解其性质。例如,bookingDate输入字段可能会显示某个模型类的实例变量,并且可能会更改。

模型 - 视图 - Controller

  

控制器是一个允许您操纵视图的对象。过度简化了一点,控制器在视图处理输出时处理输入。控制器拥有最丰富的平台和操作系统知识。视图与其活动是来自Microsoft Windows,X Windows还是其他任何内容完全无关。

     

而且,正如视图知道他们的模型但模型不知道它的视图一样,控制器知道他们的视图,但视图不知道它的控制器。 *

     

控制器是Smalltalk特有的。它们不是普遍感兴趣的,在这里没有更深入的介绍。例如,在Java的Swing体系结构中,视图和控制器相结合(这通常在其他体系结构中完成)。在Swing中,组合视图/控制器称为委托。

*仔细阅读并消化。


还有(通过它们):

“模型”混淆

  

然后,Smalltalk可以归功于发明和推广MVC架构。但它也可能被指责混乱的事情。该架构的更好的首字母缩写词是:M d M a VC。
  M d :域模型   M a :应用程序模型。

&安培;关于如何进行沟通:

  
      
  • 查看模型沟通。
  •   
  • 查看通信的模型(和控制器)。
  •   
  • 应用程序模型到域模型通信。
  •   

我认为这应该让我们清楚地了解What is the actual pattern for MVC?