MVC架构模式_程序dunk的博客-程序员秘密

技术标签: mvc  设计模式  

MVC架构模式

MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制(Controller)。

MVC模式的目的就是是向Web系统的职能分工具体如下图

MVC(Model View Controller)模型-视图-控制器

MVC是一个架构模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。他们各自处理自己的任务。

视图

视图是用户看到并与之交互的界面

模型

模型表示企业数据(数据模型:dao)和业务规划及操作(业务模型:service)

控制器

控制器表示用户的输入并调用模型和视图去完成用户的需求。

常见的MVC组件:Struts,Spring MVC,JSF

MVC的优点:

低耦合性:因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

高重用性和可适用性:其中一部分更改不会导致整个系统修改,例如,很多数据可能用HTML TABLE 来表示,但是也可能用HTML DIV表示,而这些表示所需要的仅仅是改变视图层的实现方式,而控制层和模型层无需做任何改变。

将系统架构改为MVC模式,增加Service,Dao层

Dao(Data Access Object,数据访问对象)将低级别的数据访问逻辑与高级别的业屋逻辑分离

架构模式

通过类和对象组合在一起形成一个特定结构完成业务的开发方式

MVC架构模式并没有增加业务的流程,只不过将固定的流程分解到不同的对象中去完成,这样,降低了功能和功能之间的关联性,也同时降低了业务和业务之间的关联性,这样可以更加容易的扩展系统的功能。

 

以上分析方式为横向。

纵向层次

Controller(表示层)Servlet:数据的输入和输出

Model(业务层)Service:数据的处理

DAO(持久层)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45796208/article/details/109300869

智能推荐

智慧城市掀视频监控热潮 四大安防难点剖析!_weixin_34296641的博客-程序员秘密

一、智慧城市建设促安防行业发展随着云计算、物联网和大数据技术迅速发展,共享经济理念开始得到认同,城市信息化建设,平安城市和智慧城市建设已经成为我国城市发展的必然方向。2015年《中国平安城市行业现状调研与未来前景趋势报告》分析显示:随着IT技术的迅速发展,国内的安防技术需求正在发生剧烈变化,传统的安防观和技术水平已经无法支撑维护公共安全和“大安防”的需...

第4章_2——视图的使用_云墨书生的博客-程序员秘密

而不存放视图对应的数据,数据存放在源表中,当源表中的数据发送变化时,从视图中查询出的数据也会随之改变。

C++ unordered_map的find和at的区别_wangjing1228的博客-程序员秘密

mapped_type& at ( const key_type& k );iterator find ( const key_type& k );at()和find()都是通过key在unordered_map哈希表中根据key查找元素,at返回的是元素value,find返回的是迭代器。// unordered_map::at#include &lt...

InTouch软件介绍_iteye_16284的博客-程序员秘密

InTouch软件介绍 InTouch HMI 为用户提供了今天的HMI 和监控应用所需的能力和通用性。 Wonderware 在研究与开发中进行了大量投入,保证为用户提供新型的、强大的、创新的产品。其结果是:各种公司可以把他们的精力集中于业务的运转方面,而工程师可以利用最新的软件技术。 InTouch 8.0具有三个不同的版本和多种配置模型,使各种公司能够降低他们的软件购买和维护开支,同时获得...

关于maya与max互导FBX出现错误的解决方案。_weixin_30652897的博客-程序员秘密

因为自己实在是不愿意一次又一次把时间浪费在导入导出的问题上。每一次都是多试几次才成功,也没有真正去测试这个东西。但是今天实在是碰到了错误中的极品了。最后还是决定写下来。。算是给自己做笔记吧。。大家如果在导入导出的时候遇到一些问题不妨试试以下几种方案。首先,最好确保maya和max之间经行互导的FBX版本一致。1.直接导就可以导出成功。2.如果第一步不行,可以将模型ba...

析构函数和构造函数的注意事项_定义析构函数时,应该注意_Poo_Chai的博客-程序员秘密

1构造函数:在C++中,使用构造函数来实现对象的初始化。构造函数的特点:(1)构造函数无需调用,建立对象时自动执行。(2)构造函数的名称必须与类名相同,不能随意起名(不同以初始化函数,虽然和其功能相同);(3)构造函数没有返回值。(4)如果程序者没有自定义构造函数,系统会自动调用默认的构造函数。(5)如果程序者自己定义了构造函数,则系统会调用定义的构造函数,而不会调用默认的...

随便推点

WKT Geometry_geometry wkt_yongye_的博客-程序员秘密

1 WKT Well-known text (WKT) 是一种文本标记语言,用来表示地图上的矢量几何对象。该格式由开放地理空间联盟Open Geospatial Consortium (OGC)制定。2 Geometry object model WKT中的几何对象如图1所示,描述了简单要素几何的对象模型。基类Geometry有4个子类,包含Point,Cu...

Python 2安装pip和easy_install_easy_install python2_久远成传说的博客-程序员秘密

//系统//CentOS Linux release 7.4.1708 (Core) 3.10.0-693.2.2.el7.x86_64//关闭SELinux,机器需要重启# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config//验证# grep SELINUX=disabled /etc/selinux/...

如何在Adapter中正确的使用Context_Jere_Chen的博客-程序员秘密

前言最近我在项目中,发现一个同事写 RecyclerView.Adapter 的时候都习惯定义一个全局的私有 mContext,然后在 onCreateViewHolder(parent: ViewGroup, viewType: Int) 方法中进行赋值操作 mContext = parent.context。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wzo0BlR5-1611468169753)(#pic_center)]第一次见到这样的写法,三种方式

如何在Windows10系统中使用照片查看器让打开图片_CAU_Ayao的博客-程序员秘密

首先,我们需要使用注册表编辑器来开启Win10系统照片查看器功能,因为其实这个功能是被隐藏了,那么按下Windows徽标键+R键,打开运行命令窗口,输入“regedit”命令.打开注册表编辑器之后,我们双击左侧的目录,依次打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft目录,如下图所示.在Microsoft目录下,我们需要找到Windows Pho...

论文悦读(3)——NVM文件系统之ZoFS(SOSP‘19)文件系统_DeadPool loves Star的博客-程序员秘密

ZoFS(SOSP’19)是一款NVM用户态文件系统,其最主要的贡献在于提出了一种能让用户态NVM文件系统在用户态进行元数据修改的方法。

对于大数据、人工智能时代,我们应该如何面对?_人工智能爱好者的博客-程序员秘密

对于如何积极应对大数据、人工智能时代,有以下几点建议:一,要准确把握时代的脉搏。如今是硬件时代、软件时代、数据时代、智能时代,这个时代就像是潮流一样,滚滚向前,我们一定要跟上时代的步伐。不管是互联网企业还是传统的企业,一定要认识到,数据智能化是一个趋势,智能时代是硬件、软件协同发力的时代,硬件软件数据融合是产业发展的一次新的机遇和契机。二.作为企业家代表,我们要加快推进产业的供给侧改革。一定要...

推荐文章

热门文章

相关标签