博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC结构
阅读量:5053 次
发布时间:2019-06-12

本文共 1168 字,大约阅读时间需要 3 分钟。

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。

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

转载于:https://www.cnblogs.com/gcczhongduan/p/5372286.html

你可能感兴趣的文章
php底层--1
查看>>
Servlet生命周期引起的问题
查看>>
关于gulp入门之图片压缩
查看>>
ZOJ 2136 Longest Ordered Subsequence
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
shell判断网络主机存活
查看>>
根据时间戳,增量同步数据的解决办法
查看>>
03 SeekBar 音频播放拖拽进度条
查看>>
自定义view实现阻尼效果的加载动画
查看>>
log4net介绍及使用
查看>>
CMS:文章管理之视图(3)
查看>>
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>