初学Spring MVC框架——第一步,认识MVC模式

什么是MVC模式:

        最重要的框架思想之一——MVC

        MVC设计模式就是模型视图控制器设计模式,它指定的应用程序包括一个数据模型、呈现信息、以及控制信息。该模式要求将每个模式分成不同的对象。

        模型(Model)-视图(View)-控制器(Controller)【MVC】是由微软公司开发的体系结构图案框架,它是用来代替ASP.NET用于创建web应用程序的网络的形式。MVC框架具有轻质和可测试框架的特征,并且将应用程序分成三个组件模型,视图和控制器。这三层分别有相对应的作用:

  • Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
  • View(视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
  • Controller(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

2585228e7f674fad88b91e8d3fd2e936.png

 

         MVC模式的介绍差不多已经完成了,下面讲解一下MVC模式的优缺点。

MVC的优缺点

        MVC 的优点:

        1、降低代码耦合性。在 MVC 模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其他层中的代码。

        2、有利于分工合作。在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可进行开发视图层中的 JSP,而对业务熟悉的人员可开发业务层,而其他开发人员可开发控制层。

        3、有利于组件的重用。如控制层可独立成一个能用的组件,表示层也可做成通用的操作界面。可以为一个模型在运行时同时建立和使用多个视图。

        MVC 的缺点(不足):

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

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

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

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

 

我们为什么要用MVC模式?

        

        以前的大部分应用程序(非Android应用)都是用像ASP、PHP或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心地规划和不断地尝试。MVC从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是不可否认的。

        最重要的一点是多个视图能共享一个模型。现在需要用越来越多的方式来访问应用程序,对此,其中一个解决之道就是使用MVC,那么无论用户想要使用XML布局,还是直接使用代码编写界面或者通过WebView控件使用HTML,用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所以可以最大化地重用代码。

        由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。模型也有状态管理和数据持久性处理的功能。

        因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果想把数据库从MySQL移植到Oracle中,或者改变基于RDBMS数据源到LDAP,只需改变其模型即可。一旦正确地实现了模型,不管其数据来自数据库或是LDAP服务器,视图将会正确地显示它们。关于这点我们目前不用考虑,Android中集成的SQLite数据库已经能很好地解决我们的需求。由于MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想你能构造良好的松耦合的构件。

        对我们来说,控制器也提供了一个好处,就是可以使用控制器来连接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值