我们将再次访问与第一个程序结构相关的许多概念,以及具体代码都放到了本文中。如果已经很熟悉MVC设计模式,可以直接看后面的内容。
MVC设计模式
在这个模式下面,应用程序中有三个清晰分明的关注点。
• Model(模式):这是此程序结构的一部分,此程序结构包含你的商业实体的数据以及商业实体的行为。这是唯一一个管理数据库的模式,例如:执行某种行为。
• View(视图):这是显示(或者输出)模式信息的部分,被窗体以及它的控件代表。
• Controller(控制器):视图和模式之间的交流被控制器隔离。因此当视图需要执行模式上的操作时,它将向控制器请求它。当它需要显示模式的数据时,它将向控制器请求模式。
这个分离导致创建了一个松散连接着的程序结构,构件可以在此程序结构里独立发展,此程序结构上的其中一个改变不会影响其它改变,并且会增加可维护性。更重要的是:差别性视图重新使用模式中的同一个代码。依靠设计控制器的方法,它也可以被重新使用。我们将实现的程序结构将拥有以下交流:

这个模式已经被实现且修改了多次,仍然有一些追求者肯定会承认它是一个“真的”MVC。在更传统的概念中,这个视图管理模式中的数据显示,以pull-方式来显示这些数据。在我们的实现中,实际上,控制器将数据推向视图 。在web方案中这一点可能更有效,因为不需要打扰桌面应用程序的可适应性。
为了使这个模式能在Windows窗体 和Web窗体视图中都是可以利用的,我们实现另一个模式,转接器,它将处理更新正确的用户界面:

这个方法的好处就是:在视图技术间能重新使用同一个控制器。通过实现这个谜语的核心部分:控制器和视图之间的视图映射,我们将开始实现,并且研究集成开发环境功能。