MVC 结构

MVC"Model-View-Controller" 的缩写,即 模式 - 视图 - 控制器 "MVC 结构强制将一个 应用分为模型层、视图层以及控制器。

通过三者之间的协调共同响应完毕用户的请求,即交互过程。

它们之间的协作关系如图:



上图为 mvc 模式最标准也是最常见的一种形态。从上图能够看出,模型与视图不直接打交道,而是通过控制器。即控制器全然分离了视图与模型。这是 mvc 模式的最大特点之中的一个。

在现实开发中。因为实际须要,开发设计人员一般会对标准的 mvc 模式进行一些改动。屏弃当中的某些特性,而增加新的特性。当中最常见的变化形式例如以下图所看到的:



能够看到,控制器并没有全然分离视图与模型。即它不再负责依据模型改动视图,这一过程是让模型与视图两方“面对面”直接进行。这样做尽管增强了视图与模型之间的耦合,可是减轻了控制器的负担。

另外,在通常情况下。为了进一步解耦合,层与层之间的数据通过一种叫做 DTO 即传输数据对象的介质进行传递。 DTO 的时间通常非常easy,仅仅有若干属性和属性相应的 get/set 方法,是一个标准的纯 java 对象,即 pojo 。比如基于 mvc 结构的 struts 中的 actionFrom 即为一个 DTO

视图

视图层的作用主要有两个:

l 接收用户输入,将输入信息传递给控制层。

l 负责展示数据,它将模型层中的详细数据以一定的形式展示给用户。

模型和视图之间是一个多对多的关系。一个模型能够相应多个视图,一个视图也能够关联多个模型。

控制器

控制层接收到视图层传递过来的请求后,分析请求信息。依据请求内容选择对应的模型,并改动模型的详细数值。

同一时候当模型发生变化的时候,将会通知控制器。以更新视图。

模型

模型是行为与状态的双重抽象,即封装了数据与方法。

当模型发生变化时,对应的视图会依据新的模型数据又一次绘制展现内容。

长处

使用 mvc 结构的应用有例如以下有点:

l 便于分工。 Mvc 机构将程序分为 ’MVC’ 三层,这三层各司其职。

这样便于分工协作。比如,传统结构的应用将业务逻辑和界面显示混杂在一起,这样美工非常难对页面进行美化。而 mvc 结构的应用,将应用分层,视图层仅仅有展现代码便于美工美化页面。

l 提高了代码的可重用性。多个视图能共享一个模型。多个模型也能共享一个视图,提高了代码的可重用性。

l 便于维护更新。因为 mvc 的解耦合特性。

使得维护和变更相对变得比較easy。

因此能够方便地改变应用程序的业务数据和业务规则。迁移数据库等等。 不会牵一发而动全身。

优质内容筛选与推荐>>
1、对于class和module的疑惑
2、[导入]+asp获取大量数据时+
3、sql语句中数据类型转换函数:CAST 和 Convert
4、跨域的IFrame操作
5、Javascript 最大化窗体


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号