学习过程中对MVC模式的理解

认识阶段

1.初学

在java基础阶段,也就是我刚刚开始大量敲代码的时候。刚开始学习时,并不会涉及很多页面的内容交互。很多时候抱着的就是写一个算一个,并不会考虑太多。那是也是我(包括很多人)第一次发现(其实时被指出来)代码还有规范性问题的,命名使用拼音甚至中文,所有页面全在根目录src下面。随着学习过程推进,代码量上来了,很多坏习惯的后遗症就来了,有时候都不敢认这是自己想写的,谁看了都发愁。

2.自我修正

到了JDBC阶段,真正需要在项目中操作实际数据(基于我自己认识的一种命名吧,能够在数据库保存下来而不是一关了机器就啥都没了),然后在老师强调下改了习惯,强行把文件改成下面这种分成不同包的形式。eclipse在这里插入图片描述这时还是在用eclipse,然后也还没学习servlet,所以view层仅是控制台而已。
但是效果却非常明显,虽然经常要分包很麻烦,但代码的复用性和整洁度大大提高,甚至很多时候大多页面的代码只用复制然后根据不同需求修改细节。

其效果就有如如下变化:
mode1
(model2的前身,其失败原因很简单,就是JSP的职责不单一,身兼View和Controller两种角色,将控制逻辑职和表现逻辑混杂在一起,职责过重,代码的可复用性低,不便于维护。也就是初学阶段我们自己写时常犯错误(切身经历,大多数时候我还是会把control部分分离出去的,那种全写在一个页面太可怕了,真——谁看谁摇头),然后没然后了,代码到了自己都不愿意改的阶段,基本就该告别自行车了)
在这里插入图片描述

3.model2规范化

model2
在这里插入图片描述

(model2,也就是这里想 聊的MVC的一个成功应用,正好有写了作业的例子,截了个图)在这里插入图片描述
在这里我们可以看到,mvc的三层:
1.表现层(也就是我之前的view),在引入servlet后变成了web层,各式各样的展示页面都有,再也不是干巴巴的控制台了(不过控制台不用写样式,自己写的就,就那样吧… _ (:3」∠)_

2.数据访问层(dao层),任何与数据交互的命令,操作都在这儿,基本上就是数据库的增删查改,这个应该是大家会写的最多的,应该比较容易理解。
3.然后是业务逻辑层(service层),其功能主要是连接view(或者是UI)表示层与dao数据访问层之间联系起来。其作用就是表示并处理业务逻辑,在去dao层访问数据库前,先一步处理好数据。(虽然我用的很少,而且很长一段时间很烦得多写个这么一层,不过它的重要性还是很明显的)

总结

最后借用一下老师的图
在这里插入图片描述

来帮助理解一下,我之前文件分包的意义与MVC的关系所在。
M:model模型,基础功能的实现,含括(service服务(业务逻辑层),dao处理(数据交互,处理),bean基础(封装数据的实体类))
V:view,视图,说白话了就是给人看的,最直接的大多数人不需要花太多时间就会用的操作界面。
S:servlet,程序控制,也就是控制器,所有的逻辑都在这里,是最主要也最核心的服务,虽然它不直接面向用户但它会接收用户请求并完成设计好的操作,再通过view展示用户想要的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值