二:MVC架构模式(非常重要!!!)

目录

一:MVC架构模式简介

MVC架构模式:

二:Java中实现MVC说明、

1.Model(模型):***Service类:

2.Controller(控制器):Servlet类:

3.View(视图):.jsp或.ftl文件:

4.MVC可以让View显示和Model数据解耦的体现分析

三:MVC架构模式的优点 


一:MVC架构模式简介

          ● MVC架构模式:是在整个软件领域中非常重要的架构模式。

          ● 当准备设计开发一款软件时,第一步不是写代码,而是先设计软件采用什么样的方式来构建,先确定开发的模式是什么;

          ● 软件工程中常见的有:MVC架构模式;MVVM架构模式;这些架构模式的主要目的就是让软件更好的进行开发,让团队更好的进行团队协作,让模块与模块之间拥有更低的耦合性。

MVC架构模式:

●  视图(View):  JSP只用于数据的展现,就是视图;

●  模型(Model):后台的Java类,专用于数据的处理和计算,产生结果,就是模型;

●  控制器(Controller)

            (1)视图和模型之间并不是直接发生联系的,否则就会变成上面“显示与代码耦合”的例子中的那样(前端代码和后端代码混在一起);

            (2) 为了让视图和数据之间不产生直接联系,增加了一个新的角色:控制器;

            (3)控制器是MVC架构模式中最重要的环节;起到承上启下的作用;负责接受来自视图的请求参数,将参数传递给Model进行数据处理,Model数据处理的结果再通过控制器返回给视图;视图和模型都是直接面向控制器的,视图完全不需要知道后端模型的存在,模型也不需要了解到底是哪个视图使用了我的数据;

            (4)控制器,使得视图和模型有效的解耦;

MVC模式下,很容易进行团队的分工;前端人员开发视图,后端人员开发模型,都开发完后,再通过控制器把前后端粘合在一起;

MVC并不是一种具体的代名词,MVC是一种设计理念,可以把MVC应用到Java中,也可以应用到.NET中,MVC在不同语言下的实现是不一样的;


二:Java中实现MVC说明、

1.Model(模型):***Service类:

……………………………………………………

2.Controller(控制器):Servlet类:

……………………………………………………

3.View(视图):.jsp或.ftl文件:

MVC可以让View显示和Model数据解耦;

……………………………………………………

4.MVC可以让View显示和Model数据解耦的体现分析

MVC可以让View显示和Model数据解耦;解耦在哪儿体现:

可以设想,开发JSP(属于View)的工程师是一个初级工程师,其在开发的时候并不需要关心后台的数据是由哪个类产生的,他只需要和开发Model的高级工程师约定好,我们这个结果最后会存放到当前请求的“squareList”属性中就可以了;之后,这个JSP工程师直接就从这个结果中进行数据提取进行,而这个数据从哪儿来的,开发JSP的这个初级工程师根本不需要知道;只需要基于预定好的属性名,将“squareList”进行遍历输出就可以了;

当引入MVC结构模式后,项目的可维护性极大提升;可以设想,(1)当有一天经理说当前项目不再使用JSP作为模板引擎了,需要全部换成FreeMarker,此时底层的业务逻辑完全不需要重写,我们只需要把View视图在JSP的技术改成FreeMarker模板就可以了;(2)某一天,开发Model的工程师发现,某一个功能逻辑可能有更好的,效率更好的实现写法,此时工程师在修改后Model的代码后,前端的界面完全没有感知;因为开发Model的工程师只在方法内做了调整,只要之前约定的属性名称不变,就完全没有问题。

可以发现,开发JSP的职能和开发后台业务逻辑的职能切分了,二者互不干扰;在此基础上再进行团队的分工合作,整体的团队协作就会非常协调;

MVC即保证了软件层面上的解耦,又同时保证了团队合作的组织架构;


三:MVC架构模式的优点 


注:

      ●  View(视图)部分,需要提取后台的数据,和html组合在一起,这个工作需要模板引擎,JSP是一种模板引擎,FreeMarker也是一种模板引擎!!!

      ●   自然JSP这种模板引擎是JEE的标准,Tomcat是厂商的实现中已经内置了JSP的实现了,可以直接用;文件是.jsp;

      ●   FreeMarker这种模板引擎并不是JEE的标准,想要使用FreeMarker需要导入jar包,并进行配置;文件是.ftl;

      ●   虽然JSP和FreeMarker的使用策略和具体语法存在差异,但是二者的整体使用套路是十分类似的;JSP核心是el和jstl表达式,FreeMarker核心是freemarker语法和内建函数;

猜你喜欢

转载自blog.csdn.net/csucsgoat/article/details/114683477