zoukankan      html  css  js  c++  java
  • MVC设计模式案例分析

    MVC架构设计模式案例分析

    丁海升

    (石家庄铁道大学,河北省石家庄市050000)

     要:软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    关键词:MVC;业务逻辑;架构策略;用户交互;

    一、MVC原理

    为了便于理解下面将以web网站为例去阐述MVC的原理以及案例

    1. 模型(model)

    Web应用中用于处理数据逻辑的部分,包括Service层和Dao层;Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,Dao层用于放各种接口,以备调用;

    1. 视图(view)

    Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图;通常视图是依据模型数据来创建的;

    1. 控制器(controller)

    Web应用中,简而言之,就是Servlet,或者SpringMVC框架中加了注解@Controller的方法(实际上一个方法就相当于一个对应的Servlet);

    web网站为例:首先,浏览器发送请求,JSP页面响应给客户,客户点击JSP页面上的内容,再次提交请求;这一次,请求到Controller控制器模块,也就是Servlet服务器中,Servlet服务器通过分析请求,判断客户的需求,然后调用Model模型,用Service层处理数据库的增删改查,用Dao层提供接口支持,然后Servlet将数据驱动到View视图层也就是JSP页面中,将JSP页面响应给浏览器,客户看到动态的内容。

    在这个过程中,最典型的的MVC模型就是 JavaBean + JSP + Servlet的模式,各司其职,分工合作;这种设计理念可以把html代码块和业务逻辑代码块分开,让代码更清晰,便于开发。

    二、HTTPHANDLE

    ·HttpHandler指所有实现IHttpHandler接口一类类型的统称,它是一个大的称谓。这些类型有一个共同的功能,那就是可以用来处理Http请求。

    ·IHttpHandler是微软定义的一类接口,用来约束所有能够处理Http请求的类型的接口规则。

    ·MvcHandler是Mvc里面实现IHttpHandler接口的类型,也就是说,MvcHandler是Mvc里面处理Http请求的类型。

    总而言之,HttpHandler只是一个逻辑称谓,它并不具体存在。而IHttpHandler和MvcHandler是.net framework里面具体存在的接口和实现类,是前者的表现形式。

    三、优缺点

    1.优点

    ·耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

    ·重用性高:随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。MVC使开发和维护用户接口的技术含量降低。

    ·部署快:使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

    1. 缺点

    ·没有明确的定义: 完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。

    ·增加系统结构和实现的复杂性: 对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

     

     

     

     

    参考文献

    [1] CSDN软件开发网https://blog.csdn.net/wr98442878/article/details/8992682

    [2] 中国知网https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbnam

    [3] 百度百科,MVC框架,https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6

    [4] 软件架构实践第二版

  • 相关阅读:
    SQL Server索引进阶:第十二级,创建,修改,删除
    SQL Server索引进阶第十一篇:索引碎片分析与解决
    Object.create()和new object()和{}的区别
    vue 前后端分离nginx部署
    实现组件props双向绑定解决方案
    prop不同数据类型设置默认值
    vue + element ui 阻止表单输入框回车刷新页面
    Vue.js中 watch(深度监听)的最易懂的解释
    vue-resource和axios区别
    JS中 reduce() 的用法
  • 原文地址:https://www.cnblogs.com/dinghaisheng/p/13100686.html
Copyright © 2011-2022 走看看