MVC的处理过程及优点-学习Struts 2 不得不说的架构(1)

以下内容摘自《程序天下:Struts2技术详解(实例版):基于WebWork核心的MVC开发与实践》 第1章

1.1.2   MVC设计模式

MVCModel-View-Controller的简称,即模型-视图-控制器。MVCXerox PARC20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。

MVC把应用程序分成3个核心模块:模型(Model)、视图(View)和控制器(Controller),它们分别担当不同的任务。如图1.2所示显示了这几个模块各自的功能及它们的相互关系。

                         

1.2  MVC结构图

— 视图:视图是用户看到并与之交互的界面。视图向用户展示用户感兴趣的业务数据,并能接收用户的输入数据,但是视图并不进行任何实际的业务处理。视图可以向模型查询业务数据,但不能直接改变模型中的业务数据。视图还能接收模型发出的业务数据更新事件,从而对用户界面进行同步更新。

— 模型:模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供业务数据。同一个模型可以被多个视图重用。

— 控制器:控制器接收用户的输入并调用模型和视图去完成用户的请求。当用户在视图上选择按钮或菜单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

如图1.3所示,MVC3个模块也可以视为软件的3个层次,最上层为视图层,中间为控制器层,下层为模型层。总的说来,层与层之间为自上而下的依赖关系,下层组件为上层组件提供服务。视图层与控制器层依赖模型层来处理业务逻辑和提供业务数据。此外,层与层之间还存在两处自下而上的调用,一处是控制器层调用视图层来显示业务数据,另一处是模型层通知客户层同步刷新界面。为了提高每个层的独立性,应该使每个层对外公开接口,封装实现细节。

                            

1.3  MVC三个模块同软件三层的关系

说明

MVC设计模式是目前最流行的Web应用设计模式,给项目代码的管理和维护带来了很大的便利。

 

1.1.3   MVC的处理过程

如图1.4所示,用户在视图提供的界面上发出请求,视图把请求转发给控制器,控制器调用相应的模型来处理用户请求,模型进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图来显示模型返回的数据。

           

1.4  MVC处理过程

1.1.4   MVC的优点

MVC作为一种模块化的设计思想,具有如下优点:

— 多个视图能共享一个模型。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和数据表示分离,同一个模型可以被不同的视图重用,所以大大提高了模型层程序代码的可重用性。

— 模型是自包含的,与控制器和视图保持相对独立,因此可以方便地改变应用程序的业务数据和业务规则。如果把数据库从MySQL移植到Oracle,或者把RDBMS数据源改变成LDAP数据源,只需改变模型即可。一旦正确地实现了模型,不管业务数据来自数据库还是LDAP服务器,视图都会正确地显示它们。由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的组件。

— 控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,控制器为构造应用程序提供了强有力的重组手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行业务逻辑处理,然后选择适当的视图将处理结果显示给用户。

1.1.5   MVC的适用范围

使用MVC需要精心的设计,由于它的内部原理比较复杂,所以需要花费一些时间去理解它。将MVC运用到应用程序中,会带来额外的工作量,增加应用的复杂性,所以MVC不适合小型应用程序。

但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。

说明

对于一些非常小的项目,或者没有后期开发的项目,MVC的分层设计会给开发带来额外的工作量。可以考虑不使用MVC设计。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。 模型(Model):模型表示数据和业务逻辑。它与数据库交互,从数据库中检索和保存数据,执行验证和业务逻辑等操作。模型是应用程序的核心部分,包含了应用程序的业务逻辑。 视图(View):视图是用户界面,它负责呈现数据给用户并处理用户输入。视图通常由HTML、CSS和JavaScript编写,可以是Web页面、桌面应用程序或移动应用程序。 控制器(Controller):控制器负责将用户输入转发给模型或视图。它接收用户输入并调用模型进行操作,然后将结果呈现给视图。控制器还可以处理业务逻辑、验证数据等操作。 MVC架构模式的优点包括:分离关注点(Separation of Concerns)、可扩展性、可维护性、可测试性等。它可以使应用程序的代码更加模块化,提高开发效率和代码质量。 ### 回答2: MVC(Model-View-Controller)是一种软件架构模式,用于将应用程序的不同组成部分分离,并在这些组件之间建立交互。 MVC架构主要由三个组件组成: 1. 模型(Model):模型代表应用程序的数据和业务逻辑。它负责处理数据的读取、存储和更新,并提供数据的接口给其他组件使用。模型通常是应用程序的核心,它独立于用户界面和控制逻辑。 2. 视图(View):视图是用户界面的表现形式,用于显示模型的数据和状态。它负责展示用户所见的内容,并接收用户的输入。视图并不关心模型的具体实现,它只需要获取模型的数据,并将其显示给用户。 3. 控制器(Controller):控制器负责协调模型和视图之间的交互。它接收用户的输入,并根据输入更新模型的状态或调用相应的业务逻辑。控制器还可以更新视图,以反映模型的变化。控制器充当了模型和视图之间的中介者,确保它们之间的同步和一致性。 使用MVC架构的好处包括: 1. 分离关注点:MVC架构使开发人员可以分别关注数据处理、用户界面和业务逻辑。这样,不同的团队成员可以专注于不同的任务,提高开发效率。 2. 可维护性:由于模型、视图和控制器之间的松耦合,开发人员可以更容易修改或替换其中的一个组件,而不会影响到其他组件。 3. 可扩展性:MVC架构允许灵活地添加新的功能或模块,而不会对现有的代码造成重大影响。 4. 可测试性:每个组件都可以独立进行测试,这样可以更轻松地编写单元测试和集成测试,以确保应用程序的质量和稳定性。 总的来MVC架构提供了一种有组织、可维护和可扩展的方式来开发应用程序。通过将功能分离到不同的组件中,MVC架构使得代码更易于理解、修改和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值