混淆是因为互联网上浮动的MVC架构图不同: 由于问题太宽泛,我想专注于用于WebApplications的MVC。
说:Zend Framework
。
example1:
可能是我见过的最好的一个。
example 2:
example 3:
模型视图控制器概念。实线表示直接关联,虚线表示间接关联(例如,通过观察者)。
我主要关注的是,视图如何与控制器相互作用。模型反之亦然。
MVC与MVP的一个例子:
答案 0 :(得分:-2)
由于没有发布答案,我决定发布一个。这在很大程度上基于 模型 - 视图 - 控制器(MVC)架构(WEB)(PDF)。指出:Tom Ingram(谢谢)。
文章是:
John Deacon是一名讲师和作家。面向对象的分析与设计:一种实用的方法
方法。 (有关作者的更多信息,请参阅About the author
here)
现在,最适合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?
。