MVC设计模式的学习

来源:互联网 发布:武汉工资 知乎 编辑:程序博客网 时间:2024/05/01 20:34

一、Model,View, Controller(MVC)的介绍

Model保存数据由View显示,由Controller控制的数据。View负责向用户发送输出,Controller负责反应用户的动作并相应地更新Model。 

Model      ->        View          ->    Controller

(数据层)          (展示层,界面层)           (控制层)       

 

ASP.NET提供了一个很好的实现这种经典设计模式的类似环境。开发者通过在ASPX页面中开发用户接口来实现View。Controller功能在逻辑功能代码(code-behind)文件(Foo.aspx.vb或者Foo.aspx.cs)中实现。
   在.NET中实现这种设计提供了一个两层的系统,较经典的ASP结构来说有明显的优点。将用户显示(View)从动作(Controller)中分离出来提高了代码的重用性。将数据(Model)从对其操作的的动作(Controller)分离出来可以让你设计一个与后台存储数据无关的系统。

这样我们将不会知道、也不会关心提供给Model组件的数据是存储在SQL Server或是Oracle数据库中,还是存储在一组XML文档中。

二、MVC设计模式的性能(采用数据存储过程来提高Model层的性能)

相比在你的逻辑功能代码文件(Controller)中使用嵌入的SQLSelect语句,我们可以使用存储过程根据给的参数返回想要的值,这种效果会好些。存储过程不仅仅是被数据库中预编译好的,它们还有一个预先确定的执行路径,所以其执行得更快,效率更高。

但是如果采用存储过程来处理商业逻辑的话,可能就打破了这中设计模式,所以一般存储过程用来优化系统性能和引用的完整性,不用来实现Controller层的特征。

三、MVC的可扩展性和可升级性

    将ASPX页面和逻辑功能文件复制到一个服务器群的多个IIS服务器上,全都指向同一个数据库服务器。实现这种模式后,将逻辑Controller层分离为两个物理层就很有用。相比在Controller层中在多个方法中复制使用同样的数据访问,将所有的代码合并在一个单独的数据访问对象中,由它来完成该应用程序所有的数据访问可以提高代码的重复使用率。