【发布时间】:2011-03-19 23:06:53
【问题描述】:
问题介绍
我通过 Craig Larman 的 Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development 了解了 OO 分析和设计,遵循 UP(统一流程)。
在使用它时,我们通常会画一个Domain Model,然后从它做交互/关联图,我们会得到Class Diagrams。然后我们通常将Controllers 作为Model 和“外部世界”之间的“门”(遵循 GRASP 模式)。执行任何逻辑的所有世界访问都必须通过Controllers。我将它们称为ControllersModel's Controllers,所以稍后当我们谈论MVC's Controllers 时,我们可以区分它们。
这可以用下面最棒的图表来描述:
alt text http://dl.dropbox.com/u/6187267/pic1.jpg
黑色是Model 的对象和类的关联。红色部分是Model Controllers,它使用来自Model 的数据。
基本上,按照这种设计,您只能通过所谓的Model's Controllers 使用Model(我们通常每个Use Case 都有一个Controller!)。
现在是问题本身
在学习 MVC 时,我总是有一个问题,MVC's Controller 实际上是 Model's Controller 还是不是?它们是同一个概念吗?我认为它们是不同的概念,因为我们过去所做的 Model Controllers 除了我们的 Model 上的类之外什么都不知道,而 MVC's Controllers 中似乎不会发生这种情况。
如果我说的是真的,下图应该是有意义的:
alt text http://dl.dropbox.com/u/6187267/mvc_.png
我说的对吗?
【问题讨论】:
标签: c# java model-view-controller oop controller