推广 热搜:     系统  行业  参数  教师  中国  机械  设备  基金 

项目重构-项目代码分层的意义

   日期:2024-11-26     移动:http://mip.tpjde.com/quote/1226.html

分层设计将软件划分成若干层,每一层只解决一部分问题,通过所有层的协作来完成整体的目标。一个复杂的问题通过分解成一系统子问题,这样就有效的降低了每个子问题的规模与复杂度。

项目重构-项目代码分层的意义

分层设计带来的好处

  • 降低了系统软件的复杂度。将一个复杂问题通过分解,分而治之。
  • 功能的复用和封装。

项目分层的目的

  • 保证多成员参与的项目保持视觉一致性
  • 迭代与交接可以更加无缝
  • 减少设计出错率
  • 提升团队工作效率
  • 直接目的是约束设计行为,最终目的是确保设计合理统一

分层以及业务切分设计

切分原则
  • 典型的 MVC 分层模式
  • 在中间的业务层,按照业务领域,纵向分隔多个业务应用(app,在cmd 目录下区分。
  • 在每个业务应用内部,采用通用分层设计,详见“分层设计”。
  • 理清楚每个层次的边界是什么
  • 先水平分层,再垂直切分业务模块,模块内部再次水平分层。
设计思想和原则
  • 迪米特法则:不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口,也就是需要基于接口而非实现编程
  • 这样做的好处
    • 符合一个原则:开放封闭原则(Open Close Principle:如果我的依赖源有变化的时候,我们只需要再增加一个实现就可以,不需要变更整个流程。
    • Mock 数据的时候,我只需要实现这个接口就可以实现Mock。而且可以使用自动化工具生成Mock代码

如何来做系统分层

我们先来看下阿里系统分层的规约,如下图。 在这里插入图片描述

  • 终端显示层:各端模板渲染并执行显示的层。当前主要是 Velocity 渲染,JS 渲染, JSP 渲染,移动端展示等。这块其实就是通常的前端。
  • 开放接口层:将 Service 层方法封装成开放接口,同时进行网关安全控制和流量控制等。
  • Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
  • Service 层:业务逻辑层。
  • Manager 层:通用业务处理层。这一层主要有两个作用,其一,你可以将原先 Service 层的一些通用能力下沉到这一层,比如与缓存和存储交互策略,中间件的接入;其二,你也可以在这一层封装对第三方接口的调用,比如调用支付服务,调用审核服务等。
  • DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。这样的定义,其实是想将数据 CURD 的逻辑和业务逻辑进行分离,将 基础CRUD 封装在 DAO 中,业务逻辑即放在业务层中。
  • 外部接口或第三方平台:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。

在这个分层架构中主要增加了 Manager 层,它与 Service 层的关系是:Manager 层提供通用的处理服务接口,Service 层负责依据业务逻辑来编排原子接口。

分层领域模型规约
本文地址:http://www.tpjde.com/quote/1226.html    推平第 http://www.tpjde.com/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号