MVC探索之路(1、MVC的基础概念)

来源:互联网 发布:江恩晚年一贫如洗 知乎 编辑:程序博客网 时间:2024/05/01 03:34

接触MVC快3个月了,有些感触。为了巩固基础知识,在工作闲暇时间,我把对MVC的理解和练手的项目(EF和非EF)拿来分享。

本章主要介绍MVC的基础概念。


一:MVC设计模式简介                                                                                                             

        MVC 是用于构建 web 应用程序的一种框架。是许多交互和界面系统的构成基础。是为需要为同样的数据提供多个视图的应用程序而设计的,它很好的实现了数据层与表示层的分离。MVC作为一种开发模型,通常用于分布式应用系统的设计和分析中,以及用于确定系统各部分间的组织关系。对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三种部件。

       模型(Model):它封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/O操作。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,模型不关心它会被如何显示或是如何被操作。
       视图(View):把表示模型数据及逻辑关系和状态的信息以特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。
       控制器(Controller) :处理用户与软件的交互操作的,控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。

MVC各部分关系:


二:MVC与传统WebFrom比较                                                                                                                                                                           

     结构:Web的构成是Aspx+CS文件,MVC是M+ASPX+Controller(CS),M相对独立,Web前后是一对一的,无法分开,缺少灵活性。

   执行机制WebForm访问请求aspx的时候,会与对应的后台类合为一体,做相应的处理;MVC是利用路由找相关的类和方法进行处理。
   状态管理BS本质上是无状态应用,WebForm利用了ViewState做页面状态管理,且交互性强。MVC没有页面级状态管理,需要开发人员人工处理。
   性能:MVC不用处理ViewState,没有控件树,也不做状态管理。所以在速度和性能上优于WebForm。
   耦合性MVC脱离一对一的模式,耦合性更低。对于同时有手机端和PC端的开发很方便。


三: MVC设计模式的实现                                                                                                                                                

   邻域模型封装了你的应用数据、应用流程和业务逻辑。领域模型是描述业务用例实现的对象模型,它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。要通过Model操作数据,添加操作,给某项操作添加、改变一个规则,这些都是在改变应用程序的领域模型
       在网上找的定义:模型是所有的商业逻辑代码片段所在。所有的业务处理对象都是从ProcessBase类派生的子类。业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。业务实体对象可以通过定义属性描述客户端表单数据。所有业务实体对象都EntityBase派生子类对象,业务处理对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过业务实体对象实现了对视图和模型之间交互的支持。实现时把"做什么"(业务处理)和"如何做"(业务实体)分离。这样可以实现业务逻辑的重用。由于各个应用的具体业务是不同的,这里不再列举其具体代码实例。
    视图:一般做法是一个view由多个独立的用户部件组成,这样方便多人合作开发,也提高了代码的可重用性。 
             一般处理流程是:页面引用模板(制定页面布局与插件引用)->页面添加用户部件->页面布局策略类初始化并加载页面->用户部件初始化加载->用户提交,用户部件将各自的数据提交给实体。
   控制器为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的方式进行管理。因此,为了达到集中管理的目的引入了控制器。应用程序的控制器集中从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的视图组件。

MVC的基础概念到此为止,下一期继续。


   


  



1 0