TOC

This article is currently in the process of being translated into Chinese (~94% done).

Models:

Introduction

在前面几章中,我们对MVC设计模式中的C(ontroller) (控制器)和V(iew) (视图)进行了深入学习,那么在本章中,我们就要着重关注一下M(odel) (模型)了,我们把模型放到最后才讲。这么做的原因是,你完全可以创建一个基于MVC设计模式的网站,而同时不使用模型。但要是这么做的话,所创建的也只是非常非常简单的网站。

什么是模型?

正如我们在本系列教程的快速上手部分的内容中,就是我们讲添加控制器、添加视图和添加模型的那几篇文章里所讨论过的那样——MVC应用程序中的模型应该表示当前程序的状态,以及业务逻辑的 与/或 操作。模型可以是在 ASP.NET MVC 框架中能够找到的任何对象。它实际上可以是一个简单的数字或是字符串,也可以是由一个类实例化后所得到的对象。例如,一个User类保存了一个用户的信息,一个GuestbookEntry项目包含了留言簿中的留言或是其它的东西。那也就意味着,你的模型可以是既存的类。例如,从数据库读取到的一些东西,或者你单独创建的类,将它作为一个或多个视图的模型来使用。

MVC设计模式的一个非常重要的方面就是“关注点分离”。“关注点分离”是指——通过将信息封装在一段代码中,使每个部分模块化,然后严格地控制每个模块间的通信方式。对于MVC设计模式来说,这意味着视图和控制器都可以依赖模型,但是模型却不依赖它们二者。这样,你的模型甚至可以变成独立存在于MVC框架之外的模块。例如,将这些模型用于桌面应用程序。此外,这些模型无需被可视化呈现就能够进行测试。例如,通过使用单元测试。

正如我们已经提到的那样,模型可以是你项目中已经定义的类,也可以是你专门添加用作模型的类。因此,ASP.NET MVC框架中的模型通常存放在一个名为"Models"的文件夹中,或者是当前项目以外的位置。例如,一个类库。一个模型完全不用继承一个特定的基类或者其它类似的东西——模型仅仅是常规的.NET类。有几种方法可以使用MVC相关信息来丰富你的模型类,但我们在之后才会对其进行讨论。

总结

MVC应用程序中的模型应该代表应用程序的当前状态,以及业务逻辑的 与/或 操作。在本章节接下来的几篇文章中,我们将深入学习模型的高级课程。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!