Awang2623

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MVC架构模式

摘要:本文主要从MVC模式的组成、优缺点以及应用场景等方面来讨论MVC模式,方便读者对于MVC模式的认识。

关键词:MVC 、优缺点、应用

Abstract: This acticle mainly discusses MVC pattern from the aspects of its composition, advantages and disadvantages as well as application scenarios, so as to facilitate readers' understanding of MVC pattern

Key words: MVC、merit and demerit、apply

1、MVC模式组成

  MVC(Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分。

  模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑,一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提 高了应用的可重用性。

  视图(View):视图是用户交互界面,对于Web应用程序来说,可以是HTML,JSP等界面。随着应用程序的复杂度的提高和规模的扩大,界面的处理也变得非常复杂。应用程序可能有很多不同风格和类型的视图,MVC设计模式对于 视图的操作只是数据的采集和处理,以及用户的请求,而不能进行业务流程的处理,也就是带有功能操作的部分交予模型处理。例如一个购物车的 视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

  控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户点击Web页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。可以简单的将控制器理解为,就是程序的处理流程由它来控制。  

2、MVC模式的优缺点

2.1 MVC模式的优点

  可以为一个模型在运行时同时建立和使用多个视图。变化传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。

  视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的拉开或关闭、甚至在运行期间进行模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。

  可以基于此模型建立应用程序框架,不仅仅是用在界面的设计中。

2.2 MVC模式的缺点

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

  视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了它们的独立重用。

  视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

  目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC模式使用的困难。

3、MVC模式应用

  对于MVC模式的应用,我们最熟悉的便是在web应用开发中使用Servlet+Jsp+JavaBean模式了。JavaBean充当模型Model角色,通过DAO实现操作数据库的业务逻辑。jsp充当视图View角色,负责与用户交互,即在界面上展示数据对象给用户。Servlet充当控制器Controller角色,是Model与View之间沟通的桥梁,负责分派用户的请求并选择适当的视图用于显示,解释用户的输入并将它们映射为模型可运行的操作。

  一般MVC项目的文件目录结构如下所示:

   

  com.Bean包:这个包里面放的都是一些属性类,一般数据库里面有什么表,相应的就要有什么bean,当然表里面的数据在bean里面也要全有,比如有一个Student表,表里面有id,name那么在该包下就要建立相应的Studentbean(Studentbean只是一个名字,你自己可以随便取)类,有私有变量id和name,与之对应的get和set函数。

  com.Dao包:这个包就是放一些类,类里面的函数就是用来对数据库进行操作的,例如增删改查。

  com.DBUtil:这包里面放的就是用来连接数据库的函数,在Dao函数里面直接调用这个就能连接数据库,代码复用。

  com.Servlet:这个包放置的就是servlet类,用来网页与后台数据的交互。

      

4、结语

开发软件项目,首先要选择一个良好的设计模式。采用MVC设计模式,能够简化软件开发的过程,加快开发进度,提高软件的性。

      

参考资料

    [1] https://www.xzbu.com/8/view-8813306.htm

    [2] https://www.cnblogs.com/clamye/p/12045444.html

    [3]  https://www.cnblogs.com/zll20153246/p/7871723.html

posted on 2020-05-15 10:01  Awang2623  阅读(219)  评论(0编辑  收藏  举报