0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MVC设计模式实现可扩展web应用架构的设计

牵手一起梦 来源:太赫兹科学与电子信息学 作者:王文新 2020-05-12 09:21 次阅读

传统的web应用程序会在表现层包含管理用户交互的代码,例如:一个页面可以决定用户将要跳转的下一个页面。开发者经常把所有交互代码写在用户界面代码中。然而,开发者将页面导航代码写入页面代码后,代码会很复杂,而且难以重用、维护和扩展。对于整个应用程序来说,它的业务逻辑、控制逻辑和运行状态等都很难被重用。在很多情况下,应用程序的运行状态需要保持。但是如果状态保存在某个页面中,那么代码必须从这个页面中找回状态。这样编写出来的代码不够优雅,很难得到预想的效果,而且这些不雅的代码又影响了web页面的扩展和重用。本文基于MVC模式,提出了一个可扩展的框架,简化了对从web页面独立出来的业务逻辑代码的处理,有利于复杂的web页面导航和工作流处理的复用。

1、MVC设计模式

MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。MVC结构是为那些需要为同样的数据提供多个视图的应用程序而设计的,它很好地实现了数据层与表示层的分离。MVC作为一种开发模型,通常用于分布式应用系统的设计和分析中;另外,它也可用于确定系统各部分间的组织关系。对于界面设计可变性的需求,MVC把交互系统的组成分解成视图、控制器、模型3种部件。

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

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映出这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化一传播机制。

模型、视图、控制器三者之间的关系和各自的主要功能如图1所示。

基于MVC设计模式实现可扩展web应用架构的设计

2、 应用框架

为了方便地实现业务流程控制和更改,本文根据MVC设计模式,提出了一个可扩展的框架。该框架的优点是:

1)实现了对业务流程控

制部分的包装,便于简化web应用程序的开发。使用框架开发web应用程序,只需依照页面接口编写web页面和业务逻辑,控制部分由框架根据配置文件实现。这样设计有利于页面美工与程序员的协作。

2)提高了web页面和业务逻辑的扩展和重用,便于对业务逻辑的测试,提高了系统的灵活性。

框架的结构如图2所示。Views和ViewManager是系统的视图部分,其中,ViewManager负责页面的生成与显示。Web服务和业务逻辑组件提供应用程序的业务逻辑,属于系统的模型部分。剩下的部分属于系统的控制器部分,各个部分的主要功能如下:Manager给应用程序提供一个人口,根据不同的Navigator来决定新建或加载一个任务:Navigator负责管理页面之间的跳转,根据配置文件选择合适的页面,调用ViewManager激活页面;ControllerBase和Controllers根据页面请求调用不同的业务逻辑,返回结果;State保存应用程序的状态以及当前显示的页面。

基于MVC设计模式实现可扩展web应用架构的设计

此应用框架的具体工作流程如下:在Manager中启动任务以后,实例化导航器传递适当的信息给导航器(Navigator)。导航器调用Configuration类从配置文件中取出配置信息,根据配置信息,创建视图管理器(Views Manager)。然后,Manager调用Navigator的NavigateEvent事件,获得应用程序要显示的和下一个要显示的页面。此时,可以调用State类中的Save方法,将状态保存到数据库中。另外,导航器也可以调用适当的视图管理器中的ActiveView方法,将视图名字传给视图管理器。ActiveView方法负责创建控制器,显示视图。视图显示之后,等待用户在界面中执行一个动作。如果用户执行了一个动作,就通过控制器调用业务逻辑,处理后就会将结果返回页面。

使用框架开发应用程序可以很方便地控制和改变业务流程,此时只需要修改配置文件即可;可以实现状态管理,保持页面间状态的连贯性,捕获用户与应用程序交互的状态,根据保存的状态信息,用户可以在任何时间、地点、机器继续未完成的操作。

3、面向应用框架的web程序开发

汽车4S店企业资源计划(Enterprise Resource Planning,ERP)系统业务逻辑复杂,业务流程易更改,采用本文提出的框架进行开发,结构层次清晰,便于分工协作,取得较好的效果。我们使用汽车配件采购订单模块,来说明框架的应用,其流程如图3所示。

基于MVC设计模式实现可扩展web应用架构的设计

在开发过程中,分别编写需要显示的web页面和后台业务逻辑,在配置文件中,使用view元素将页面名称与页面代码对应起来,在navigation部分编写页面的流转。如果要修改业务流程,只需修改配置文件导航部分;另外,添加页面也很方便,只需要在配置文件中增加页面节点,配置页面的流转过程即可。

部分流程配置代码如下:

基于MVC设计模式实现可扩展web应用架构的设计

通过配置文件的设置,框架可以便利地修改和扩展应用程序,实现对业务流程的控制和修改。这样,web页面和逻辑代码就可以很方便地修改和复用,应用系统也具有很强的灵活性和可扩展性。

4、结论

MVC作为一种常用的开发模型,因其实现了数据层与表示层的分离,被广泛用于分布式系统的设计和分析,应用程序的重用度高,并易于维护和修改。很多交互性愈来愈强的传统web应用程序开发(如PHP、ASP、JSP等),存在着代码较为复杂、重用度低和维护扩展难度大的问题,根据MVC思想的可扩展设计框架,可有效地提高web应用程序的开发效率。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171175
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87596
  • 应用程序
    +关注

    关注

    37

    文章

    3136

    浏览量

    56389
收藏 人收藏

    评论

    相关推荐

    MVC框架

    缺点。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:Model(模型)表示应用程序核心(比如数据库记录列
    发表于 06-22 20:30

    MVC架构你知道多少

    的一种软件设计模式MVC 被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 二、MVC 目的MVC 的目的是
    发表于 09-17 09:05

    基于web的BS架构模式

    基于web的BS架构模式。在嵌入式上呢?笔者考察了好多GUI,目前没有发现太满意的。如QT,LittlevGL,Guilite,awtk,Nuklear等。这些GUI怎么说呢?要么太庞...
    发表于 12-15 08:09

    基于Struts框架和Procedure的Web开发模式

    介绍基于MVC设计模式的Struts框架的组成和实现原理,总结该开发框架的应用特点和开发步骤。在分析和比较其他基于Struts开发模式特点的基础上,提出基于Struts和存储过程结合的
    发表于 04-23 10:16 79次下载

    基于Enhydra的MVC模式Web应用解决方案

        基于MVC 开发模式被证明是有效的处理方法之一,本文首先分析了MVC、三层结构及其关系,研究了Enhydra 技术的三层体系框架及其优势。然后结合实例,给出了一个
    发表于 09-04 09:43 10次下载

    基于MVC模式WEB应用框架

    MVC模式是目前WEB应用系统设计中较为流行的一种,它在J2EE应用平台上的表现使其成为众多设计者的首选。其中,基于MVC模式的Struts
    发表于 12-29 17:13 12次下载

    MVC模式在教学考评系统中的应用

    通过对MVC 设计模式进行的分析,探索了基于MVC 模式开发Web 应用程序的优缺点,提出基于MVC
    发表于 10-14 16:10 0次下载

    MVC模式在嵌入式调试工具开发中的研究

    模型—视图—控制器MVC(Model-View-Controller)模式是系统开发中较常用的一种开发模式。将MVC思想引入开发模式中,先对
    发表于 01-05 11:19 27次下载

    基于MVC模式的地图控件的设计

    MVC模式增加了程序的可维护性、可扩展性。文中在研究、分析MVC设计模式思想的基础上,应用MVC
    发表于 02-22 11:08 23次下载
    基于<b class='flag-5'>MVC</b><b class='flag-5'>模式</b>的地图控件的设计

    spring mvc框架介绍

    。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,
    发表于 11-17 16:28 2151次阅读
    spring <b class='flag-5'>mvc</b>框架介绍

    mvc模式的优缺点

    MVC模式的优点:各施其职,互不干涉在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。
    发表于 11-17 16:42 3723次阅读
    <b class='flag-5'>mvc</b><b class='flag-5'>模式</b>的优缺点

    MVC架构模式为什么悄然消失了

    MVC这门技术伴随着我的成长,感情和Java一样深厚,但是,最近两年却不得不和MVC说再见了。是的,不是Struts没了,也不是SpringMVC没了,而是MVC这种架构模式被淘汰了。
    的头像 发表于 04-12 19:18 5071次阅读

    Spring Web MVC注解

    RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过`RquestMappingHandlerMapping`和`RequestMappingHndlerAdapter`两个类来提供
    的头像 发表于 04-07 11:32 400次阅读
    Spring <b class='flag-5'>Web</b> <b class='flag-5'>MVC</b>注解

    javaweb三层架构mvc架构

    JavaWeb三层架构MVC架构是当前Web开发领域中常用的两种架构模式。 一、JavaWeb三层架构
    的头像 发表于 11-22 16:41 460次阅读

    javaWeb的MVC三层架构的原理

    JavaWeb的MVC三层架构是一种将应用程序分为三个主要组件的软件设计模式,即模型(Model)、视图(View)和控制器(Controller)。这种架构的目标是将应用程序代码分离
    的头像 发表于 12-03 11:48 527次阅读