本文会围绕怎么分层,每层什么作用,分层有什么好处这几个问题展开

  • (一)怎么分层
    • 阿里巴巴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提供的对象或者自己系统编写的对象。

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

  1. 嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系

    VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization,指 ...

  2. Uml 理解Rational Rose软件中四种视图和Uml 9类图之间的关系

    对于一个稍有规模的软件来说,列出系统内类之间的关系,对象之间的时序协作,有利于系统的梳理和扩展,使系统逻辑更有条理.下面这片文章对于四种视图的使用有提纲挈领而又不失详细的说明,可以一看. http:/ ...

  3. 4-1:TCP协议之传输层的作用及传输层协议TCP和UDP

    文章目录 一:传输层的定义 二:通信处理 三:传输层协议 四:TCP协议的可靠和性能 一:传输层的定义 前面说过,IP首部有一个协议字段用于标识网络层(IP)的上一层采用哪一种传输层协议.根据这个字段 ...

  4. pdcp层的作用_NR PDCP层介绍

    PDCP层主要功能如下: · 数据传输(用户平面或控制平面): · PDCP-SNs的维护: · 使用ROHC协议的头压缩和解压: · 加密和解密: · 完整性保护和完整性验证: · 基于定时器的SD ...

  5. 最细! 卷积神经网络的历史和 各层的作用

    目录 一 历史发展 二 卷积层 2.1 卷积层的作用 2.1.1提取图像的特征 2.1.2  局部感知,参数共享 2.1.3 二维卷积运算 2.1.4 特征图和感受野 2.1.5 卷积中的填充和步幅 ...

  6. PADS中Layer25层的作用(Z)

    Layer25层的作用: Layer25层是插装的器件才有的,只是在出负片的时候才有用,一般只有当电源层定义为CAM Plane的时候geber文件才会出负片(split/Mixe也是出的正片),如果 ...

  7. SSM框架中MVC各层的作用以及运行流程

    这篇博文主要介绍的是SSM(Spring.SpringMVC.Mybatis)框架中,MVC各层的作用以及各层之间的交互和框架整体运行流程. 一.MVC各层级间的作用及关系 表现层(springMVC ...

  8. 卷积神经网络中卷积层、池化层、全连接层的作用

    1. 卷积层的作用 卷积层的作用是提取输入图片中的信息,这些信息被称为图像特征,这些特征是由图像中的每个像素通过组合或者独立的方式所体现,比如图片的纹理特征,颜色特征. 比如下面这张图片,蓝色框框住的 ...

  9. 以太网的分层架构_现代通信网络的分层结构及各层的作用

    现代通信网络的分层结构及各层的作用 概述 随着计算机技术的发展和对联网的迫切需求, 通过Modem在电话网中传送低速数据的通信方式, 已 满足不了日益增长的数据通信的要求.电信部门早在 1988 年就 ...

  10. java逻辑层的作用_java三层架构原理与作用小结

    三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高 ...

最新文章

  1. webstorm常用快捷键
  2. JavaWeb 错误/异常时页面提示
  3. python打开是什么颜色-python图片颜色
  4. [大數據、Big Data、巨量資料、海量資料]之分析模式工具
  5. jquery validate验证方法
  6. Spring中ApplicationContextAware的用法
  7. Linux SPI总线和设备驱动架构
  8. LeetCode LCP 22. 黑白方格画
  9. javascript一些底层方法总结及用法
  10. DB2 存储过程中执行动态SQL的两种写法
  11. 【软件工程】软件工程过程概述
  12. 强化学习《基于策略 - on plolicy - off plolicy》
  13. 【莓控】黑莓GOOGLE MAPS(GPS软件)-转贴
  14. eclipse使用python_【转】使用Python的IDE:Eclipse+PyDev
  15. python处理json文件_python读取json文件转成excel
  16. eNsp 多区域OSPF配置
  17. Vision Transformer(VIT)代码分析——保姆级教程
  18. 学生宿舍管理系统毕业设计(python)
  19. iOS让屏幕保持常亮,不自动锁屏
  20. micropython-SPI通讯

热门文章

  1. PotPlayer 禁止更新
  2. (大数据工程师学习路径)第三步 Git Community Book----基本用法(下)
  3. CMakeLists编译
  4. html2canvas 像素,html2canvas 如何生成高清图片?
  5. 2020项目商机_营销“心”思维,赢得“新”商机 ——2020年第二期军师项目顺利落幕...
  6. Windows服务器nginx多个二级域名配置多端口无效问题的解决方案
  7. ubuntu18.04 下安装搜狗输入法
  8. 中国HBase技术社区第十届meetup--HBase生态实践 (杭州站)...
  9. 网易云基于 Kubernetes 的深度定制化实践
  10. openwrt 添加luci选项