Java 6-1 项目模块化-概念

6-1 项目模块化-概念

一、组件化与模块化

组件化

以功能为依据,解决复用问题

  • 初衷:
    复用的代码,进行工具性的封装

  • 目的:
    复用,解耦

  • 依赖:
    各组件之间独立,低依赖甚至零依赖

  • 架构(纵向):
    位于项目底层,被其他上层依赖

  • 举例:
    Dialog、自定义控件、网络请求、图片加载、工具集、三方库

模块化

以业务为依据,解决复用问题

  • 初衷:
    业务划分,把同一类型业务逻辑进行需求性的封装

  • 目的:
    隔离,高内聚

  • 依赖:
    模块之间无依赖关系,但可以自由组合

  • 架构(横向):
    位于业务层,平级依赖

  • 举例:
    用户模块、订单模块、汽车模块、认证模块


二、模块化思想

核心:每个模块作为一个独立的子项目,子项目之间不要有相互依赖(基础模块除外)

  1. 多人同步开发的情况下互不影响
  2. 模块单独维护、升级、调试、测试、打包部署等,实现轻量化
  3. 约定不轻易修改主程序、基础模块、对内接口等
  4. 模块之间实现 高效组合、拆分

三、模块化的优缺点

优点

可维护性高

  • 架构清晰,开发灵活
  • 降低业务耦合度
  • 方便单模块的 调试、升级、维护,调试效率也更高
  • 模块间的高效组合和拆分

缺点

性能损耗大

  • 调用链长,排查代码费力
  • 模块间通信很消耗性能
  • 不要为了模块化而复杂化本来不需要过大架构的项目

四、模块化场景

业务增量包

  • 汽车模块为基础模块,可单独打包发布
  • APP汽车模块、订单模块、财务模块等,都需要依赖汽车模块
  • 任意组合:A+B+C+D、A+B、A+C、B+C

项目部署

  • 更好应对项目 容灾、业务重组、服务器负载 等各方面考研
  • 用户、汽车、交易者、订单、财务,都是独立的系统,部署到不同服务器
  • 微服务,是模块化的一种实现方式
  • SaaS系统,软件即服务/软件服务化,需要用到模块化

五、模块化项目架构设计

  • 综合业务层
  • 拓展业务层
  • 基础业务层
  • 公共库
  • 实体库
  • 基础库

模块化项目架构设计图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柯基爱蹦跶

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值