Model1、Model2和三层

本文介绍了MVC架构中的Model1和Model2的区别,并详细解释了三层架构的概念及其与MVC的关系,帮助读者理解不同软件架构的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    使用三层有几年了,还记得当时很多人都写了《三层与MVC的异同》这样的文章,看下面的评论,有不少人指出这两者属于不同的范畴,没什么可比性。当时也想写一篇关于三层和MVC文章,奈何只有“望文生义”的理解,写不出什么来。现在结合项目所学,重新理顺一下。

M、V、C

    因为无论是Model1还是Model2,都涉及到M、V、C这些基础概念,所以先简单介绍一下M、V、C代表的含义。

    V,View,视图:视图是用户看到并与之交互的界面。
    M,Model,模型:模型表示企业数据和业务规则,模型拥有最多的处理任务。
    C,Controller,控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。

Model1

    Web早期开发中,使用的是Model1,按照MVC来说,它仅包含V和M,即视图和模型,它把业务逻辑也放到了视图中,因为它的视图和逻辑耦合太高,代码重用性低,难以维护,但是对于小型项目来说,开发效率很高。

    

    在JSP开发中,Model1相当于JSP+Javabean,流程是为:

  • JSP获取表单数据并提交
  • 调用业务或数据处理
  • 处理完毕后返回给JSP
  • JSP显示给用户

Model2

    Model2也就是我们常说的MVC,相对于Model来说,把业务和显示分离,抽离出C,负责转发和调用业务逻辑。

    

    在Java的Web项目中,相当于JSP+Servlet+Javabean,它的流程是:

  • Servet获取表单数据并提交
  • 调用业务或数据处理
  • 把处理完毕的数据返回给Servlet
  • Servlet调用JSP,传递参数
  • JSP显示给用户
    可以看出在Model2中,大大减少了JSP的责任,将显示调用关系的责任赋给了Servlet,从而达到解耦合的目的。

三层架构

    MVC主要是说明如何分配任务,针对的是一个流程,哪种文件负责做什么;而三层说的是如何分成层,针对的是整个项目,为了是整理出清晰的分类逻辑,比如把所有的C放到一个层中,所有和用户管理相关的逻辑处理类放到一个包中,从而达到分类清晰的目的。
   
    更多系列博客,其访问《项目总结》。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值