关于我对MVC设计模式的理解

Controller层

控制层,用于处理请求的。当请求来的时候,控制层会找到对应的处理方法。

Service层接口

这个层是接口层,是为Controller层提供服务的层,里面有很多抽象方法,控制层调用这个方法获得执行结果返回

ServiceImpl层

这个层就是Service接口层的实现层,这个层实现了Service层的接口,实现了Service层所有的抽象方法

Dao层接口

这个层也是一个接口层,里面的抽象方法是提供给ServiceImpl层使用,这一层是数据持久层,是跟数据库打交道的层

DaoImpl层

这个层是实现Dao层的实现层,实现了Dao层的所有抽象方法,里面的方法主要都是跟数据库相关的。该层是跟数据库交互的层。该层到了SSM框架之后就变成了mapper.xml文件,这个mapper.xml文件不一定实现了Dao层的所有抽象方法,这个文件只是专注于sql语句的制作,通过Dao层接口的包名+方法名策略找到对应的mapper.xml文件标签

我的理解

MVC设计模式就如同一家饭店。
饭店的门面就相当于项目的html/jsp页面
饭店的大堂经理就是Controller层,不同的客人来到饭店就像是不同的请求来到服务器,大堂经理通过调配对应的服务员来接待这些客人
这些服务员就像是ServiceImpl层,用于实际接待客人(请求)
服务员通过客人的点单,到后厨去让厨师做相应的菜品,而厨师就相当于DaoImpl层
Service层接口就是服务员所穿的制服,大堂经理蓝岛这一身的制服就知道这个人是一个服务员,而服务员本身就是这一身制服的实现类(ServiceImpl)
Dao层接口就是厨师所穿的制服,服务员看到这身制服就知道这个人是厨师。而厨师本身就是这一身制服的实现类(DaoImpl)

为什么使用接口?

这就好比于为什么服务员要穿服务员制服,厨师要穿厨师制服。穿制服就是为了标识这个人的身份(是厨师还是服务员),如果不穿制服,就会产生混淆,没有了制服,谁也不认识谁,大堂经理总不该让来到的客人去写单子吧?而服务员总不该让客人去炒菜吧?
同理,接口时为了规范实现接口的这个类是做什么功能的。

为什么还必须要有Dao层,直接Service层访问数据库不行吗?

Dao层是必须要有的 ,又回到饭店的例子,Service层直接访问数据库,相当于服务员直接进后厨去炒菜,又是服务员又是厨师的,会出现职责混淆,总不能炒菜炒到一半又得出去接待客人吧?
Dao层的存在是为了让业务逻辑更加分明,易于后面的管理维护。

想写这篇博客很久了,但是一直迟迟未写。写给你,对MVC的理解。

小白对这个MVC的理解还不够深入,希望有大神指点一二。欢迎各位有见解的同行可以讨论讨论。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值