软件开发应用分层、每层的作用及各层之间调用关系

本文深入解析软件分层架构,包括如何分层、各层的作用及分层带来的好处。阐述了controller、service、DAO和Manager层的职责,以及分层如何促进职责明确、解耦和易于维护。

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

(一)怎么分层

阿里巴巴Java开发手册推荐分层

在这里插入图片描述

不同看法

阿里巴巴Java开发手册中推荐manager层可以和DAO层交互,并可以与多个DAO组合复合。我不推荐这么做,我认为DAO层和Manager层地位是一样的,不同的是DAO层调用的是数据库,Manager层调用的是第三方插件(南向接口或者缓存等)。DAO层和Manager层只提供增删改查等最基本的功能,至于组合复用提供完整的功能和事务控制应该交给Service层来做。

(二)每层什么作用

controller层(类似于部门秘书)

数据校验,非前后分离项目还会做前端路由控制等简单工作

service层(类似于部门经理)

service层提供的方法都是完整的功能,事务控制也在service层处理

DAO层、Manager层(类似于程序猿、采购)

只提供增删改查等功能,并且只能被自己的service调用

着重强调:DAO层和Manager层只能被自己的service调用。就像程序员、采购只做自己部门经理安排的工作一样,因为只有部门经理知道DAO、Manager做增删改查等的时候还需要做什么工作,反过来说只有增删改查等操作让对应的service控制,才能保证service的事务和功能的完整性

(三)分层的好处

  • 职责明确:数据校验,事务控制和完整功能,操作数据库,操作缓存,操作第三方等
  • 解耦:这个解耦是指模块解耦,比如说缓存更换,或者添加新的缓存,只在service处理就可以了
  • 结构清晰,易于维护:只通过service层就可以清楚的知道该业务用到那些组件,方便理解和上手
  • 好处太多了。。。

解耦接口设计推荐

第三方接口设计时候,接口中的参数不要使用第三方jar的对象,使用jdk提供的对象或者自己系统编写的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那你为何对我三笑留情

感谢支持,沉淀自己,帮助他人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值