在MVC设计模式中,Model1与Model2之间的关系?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MVC设计模式中,Model1与Model2之间的关系?相关的知识,希望对你有一定的参考价值。

Model 1
Model 1的基础是JSP文件,它由一些相互独立的JSP文件,和其他一些Java Class组成(不是必须的)。这些JSP从HTTP Request中获得所需要的数据,处理业务逻辑,然后将结果通过Response返回前端浏览器。

Model 2
采用面向对象技术实现MVC模式从而扩展JSP/Servlet的模式被成为是Model 2模式。Apache Jakarta项目中Struts是一个实现Model 2的很好的框架,它通过一些Custom Tag Lib处理表现层,用ActionFrom Bean表示数据,用自己提供的一个ActionServlet作为控制器实现页面的流转的控制功能。

说的直白一些,model1即为单纯的jsp+java,没有框架参与,通过response和request对象传送值域,而model2,则使用较为流行的struts框架
参考技术A 这个是地址: http://www.gxu.edu.cn/jxcg/units/945017/xueshulunwen/38.htm刚才不小心发出来了 参考技术B Model 1
Model 1的基础是JSP文件,它由一些相互独立的JSP文件,和其他一些Java Class组成(不是必须的)。这些JSP从HTTP Request中获得所需要的数据,处理业务逻辑,然后将结果通过Response返回前端浏览器。

Model 1的应该说是唯一的好处是"简单",可以大大加快系统的开发进度。它把表现层和业务逻辑层柔和在一起,不利于以后的维护工作以及开发角色的分配,所以这种模式只能适合于小的系统开发。
Model 2
采用面向对象技术实现MVC模式从而扩展JSP/Servlet的模式被成为是Model 2模式。Apache Jakarta项目中Struts是一个实现Model 2的很好的框架,它通过一些Custom Tag Lib处理表现层,用ActionFrom Bean表示数据,用自己提供的一个ActionServlet作为控制器实现页面的流转的控制功能。

Struts强制开发人员采用MVC的设计进行系统开发,虽然它会带来如将表现层和业务层分开,合理安排开发人员角色等诸多方面的好处,但也存在一些缺点:

由于View层采用JSP,所以开发人员还是可以在其中写上一大堆的Java代码,从而使最后的系统还处于一种混乱的状态。而实际上开发人员确实会出现这种状况;
开发人员需要学习Struts提供的Custome Tag Lib,这需要时间,尤其对以前只熟悉HTML的页面设计人员来说,同时其中的一些Tag已经被Java Standard Tag Library取代掉了。
参考技术C 我仅在搜索引擎里面,找了一个地址:

关于vue项目中mvvm模式的理解

欲谈mvvm 必谈mvp,欲谈mvp 必谈mvc

 

mvc模式:view监听model,controller监听view并改变model,model被改变触发view的改变

mvc的两个问题:

  1:view与model高度耦合

  2:controller太重

 

mvp模式:MVP的目的在于隔离model和view,view复杂界面的展示逻辑,model负责数据的处理逻辑,Presenter复杂整合view层和model层

//model层
function userModel(data){
  this.name = data.name;
  this.avatar = data.avatar;
}
function getUserData(){
  return fetch("http://test.com/getUSer")
  .then(function(response){
    var userData = response.data;
    return new userModel(userData)
  })
}
//Presenter层
function userPresenter(){
  var userData = getUserData();//网络请求获取用户数据
  userData.then(function(userData){
    new userView().showUserMes(user);
  })
}
//view层
function userView(){

}
userView.prototype.showUserMes = function(userData){
  document.getElementByID("username").value = userData.name;
  document.getElementByID("useravatar").value = userData.avatar;
}

如图在view层编写基本的视图逻辑,而数据层编写基本的数据请求,在presenter层复杂将两者整合起来,这样达到了view与model分离的目的,同时将业务逻辑中视图方面的逻辑放入到view层

mvvm模式:mvvm模式主要是在于v-vm和v-p的改变,mvvm的双向数据绑定优化了v-p模式下关于view层与presenter层的交互。其他地方则与mvp无异,

以上是关于在MVC设计模式中,Model1与Model2之间的关系?的主要内容,如果未能解决你的问题,请参考以下文章

浅析JavaWeb开发模式:Model1和Model2

java web-----MVC设计模式

什么是Model1和Model2?请解释它们各自的特点

MVC模式和Spring MVC初识

Java EE模式和MVC

java web 开发模式