zoukankan      html  css  js  c++  java
  • 传统的MVC模式

    对于MVC模式,我们可以将可视化UI呈现,UI处理逻辑和业务逻辑分别定义在View,Controller,和Model中。

        可视化UI呈现->View

        UI处理逻辑->Controller

        业务逻辑->Model

        MVC模式中,这三者之间的交互并没有严格的限制,比喻允许View和Model直接交互

    MVC模式的变体MVP

        MVC是一种很广泛的概念,没有对View,Controller,Model之间设置一个严格的规则。所以对于特定的开发框架比如(ASP.NET Web Form),出现了MVC模式的变体。

        在ASP.NET Web Form中,MVP中的M和V分别对应MVC中的Model和View,而P(Presenter)代替了Controller。MVP更多的变更时体现在这三者之间的交互上。

        在MVP中,能够与Model进行直接交互的只能是Presenter,View只能通过Presenter调用Model。Model在这里保持独立性,与可视化元素的呈现(View)无关,与UI处理逻辑(Presenter)无关

        

          MVP避免了View和Model之间的耦合,更进一步降低了Presenter和View之间的依赖。Presenter依赖的是一个IView的接口,即View实现的接口IView。

          MVP三要素之间的交互主要体现在两方面,即View/Presenter和Presenter/Model。Presenter和Model之间,只是Presenter对Model的一个单项调用。而整个MVP之间的核心是View和Presenter之间的交互。依据View和Presenter之间的交互方式,以及View的职责,又将MVP划分为PV(Passive View)和SC(Supervising Controller)两种模式。

          PV(Passive View)模式,即是一个被动的View,View不会涉及到任何UI处理的逻辑,所有针对UI元素(控件)的操作都不是View自身来控制的,而是交由Presenter来控制

            -->采用PV模式来实现View,需要我们将View中UI元素通过属性的形似暴露出来。具体说就是定义IView接口的时候,需要定义基于UI元素的接口,是Presenter可以对View进行细粒度操作。在理想的情况下,定义IView接口的UI元素属性,应该与平台无关性,不使用控件类型直接定义。PV模式下,所有的UI处理逻辑都定义在Presenter中,接口IView中成员也会变得很多。

            -->SC模式,降低了Presenter的复杂度,将简单的UI逻辑转移到View上,这些处理逻辑会在IView接口中定义。对View的操作,View本身并不进行相应,而是将请求转发给Presenter。Presenter针对Model调用,驱动View或者是创建View。

    ASP.NET 中的MVC

       ASP.NET MVC是建立在ASP.NET平台上,基于MVC模式建立的WEB应用框架。

       自定义IHttpModule对Http请求进行拦截,解析出目标请求的Controller和Action。

       自定义IttpHandler,对目标Controller激活。

       ASP.NET MVC中的Model仅仅是绑定到View上的数据而已,不包含任何的UI逻辑代码。Model仅仅是基于View的,也可以称其为View Model。用于构建ASP.NET的MVC模式可以理解为M(Model)-V(View)-VM(View Model)-C(Control)

  • 相关阅读:
    mysql数据库存储的引擎和数据类型
    mysql数据库基本操作
    【转】linux yum命令详解
    [转]Linux rpm 命令参数使用详解
    【转】Linux GCC常用命令
    [转]linux下logrotate 配置和理解
    [转]Linux下chkconfig命令详解
    [转]linux之top命令
    [转]linux之ps命令
    互联网产品如何做到快与轻
  • 原文地址:https://www.cnblogs.com/guichi/p/4551546.html
Copyright © 2011-2022 走看看