软件开发应用分层、每层的作用及各层之间调用关系
本文会围绕怎么分层,每层什么作用,分层有什么好处这几个问题展开
- (一)怎么分层
- 阿里巴巴Java开发手册推荐分层
- 不同看法
- (二)每层什么作用
- controller层(类似于部门秘书)
- service层(类似于部门经理)
- DAO层、Manager层(类似于程序猿、采购)
- (三)分层的好处
- 解耦接口设计推荐
(一)怎么分层
阿里巴巴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提供的对象或者自己系统编写的对象。
软件开发应用分层、每层的作用及各层之间调用关系相关推荐
- 嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系
VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization,指 ...
- Uml 理解Rational Rose软件中四种视图和Uml 9类图之间的关系
对于一个稍有规模的软件来说,列出系统内类之间的关系,对象之间的时序协作,有利于系统的梳理和扩展,使系统逻辑更有条理.下面这片文章对于四种视图的使用有提纲挈领而又不失详细的说明,可以一看. http:/ ...
- 4-1:TCP协议之传输层的作用及传输层协议TCP和UDP
文章目录 一:传输层的定义 二:通信处理 三:传输层协议 四:TCP协议的可靠和性能 一:传输层的定义 前面说过,IP首部有一个协议字段用于标识网络层(IP)的上一层采用哪一种传输层协议.根据这个字段 ...
- pdcp层的作用_NR PDCP层介绍
PDCP层主要功能如下: · 数据传输(用户平面或控制平面): · PDCP-SNs的维护: · 使用ROHC协议的头压缩和解压: · 加密和解密: · 完整性保护和完整性验证: · 基于定时器的SD ...
- 最细! 卷积神经网络的历史和 各层的作用
目录 一 历史发展 二 卷积层 2.1 卷积层的作用 2.1.1提取图像的特征 2.1.2 局部感知,参数共享 2.1.3 二维卷积运算 2.1.4 特征图和感受野 2.1.5 卷积中的填充和步幅 ...
- PADS中Layer25层的作用(Z)
Layer25层的作用: Layer25层是插装的器件才有的,只是在出负片的时候才有用,一般只有当电源层定义为CAM Plane的时候geber文件才会出负片(split/Mixe也是出的正片),如果 ...
- SSM框架中MVC各层的作用以及运行流程
这篇博文主要介绍的是SSM(Spring.SpringMVC.Mybatis)框架中,MVC各层的作用以及各层之间的交互和框架整体运行流程. 一.MVC各层级间的作用及关系 表现层(springMVC ...
- 卷积神经网络中卷积层、池化层、全连接层的作用
1. 卷积层的作用 卷积层的作用是提取输入图片中的信息,这些信息被称为图像特征,这些特征是由图像中的每个像素通过组合或者独立的方式所体现,比如图片的纹理特征,颜色特征. 比如下面这张图片,蓝色框框住的 ...
- 以太网的分层架构_现代通信网络的分层结构及各层的作用
现代通信网络的分层结构及各层的作用 概述 随着计算机技术的发展和对联网的迫切需求, 通过Modem在电话网中传送低速数据的通信方式, 已 满足不了日益增长的数据通信的要求.电信部门早在 1988 年就 ...
- java逻辑层的作用_java三层架构原理与作用小结
三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高 ...
最新文章
- webstorm常用快捷键
- JavaWeb 错误/异常时页面提示
- python打开是什么颜色-python图片颜色
- [大數據、Big Data、巨量資料、海量資料]之分析模式工具
- jquery validate验证方法
- Spring中ApplicationContextAware的用法
- Linux SPI总线和设备驱动架构
- LeetCode LCP 22. 黑白方格画
- javascript一些底层方法总结及用法
- DB2 存储过程中执行动态SQL的两种写法
- 【软件工程】软件工程过程概述
- 强化学习《基于策略 - on plolicy - off plolicy》
- 【莓控】黑莓GOOGLE MAPS(GPS软件)-转贴
- eclipse使用python_【转】使用Python的IDE:Eclipse+PyDev
- python处理json文件_python读取json文件转成excel
- eNsp 多区域OSPF配置
- Vision Transformer(VIT)代码分析——保姆级教程
- 学生宿舍管理系统毕业设计(python)
- iOS让屏幕保持常亮,不自动锁屏
- micropython-SPI通讯
热门文章
- PotPlayer 禁止更新
- (大数据工程师学习路径)第三步 Git Community Book----基本用法(下)
- CMakeLists编译
- html2canvas 像素,html2canvas 如何生成高清图片?
- 2020项目商机_营销“心”思维,赢得“新”商机 ——2020年第二期军师项目顺利落幕...
- Windows服务器nginx多个二级域名配置多端口无效问题的解决方案
- ubuntu18.04 下安装搜狗输入法
- 中国HBase技术社区第十届meetup--HBase生态实践 (杭州站)...
- 网易云基于 Kubernetes 的深度定制化实践
- openwrt 添加luci选项