项目模块化记事

本文聚焦iOS开发,探讨模块粒度划分、分层及多团队协作问题。模块划分遵循solid原则,分层包括底层基础组件、中间层通用业务组件和上层迭代业务组件。介绍协议式和中间者两种组件化架构设计方案,强调解耦要在功能逻辑和组件划分上做到同级解耦、上下层依赖清晰。

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

首先解决三个问题:

  1. 模块粒度应该如何划分?
  2. 如何分层?
  3. 多团队如何协作?

颗粒度划分

对于 iOS面向对象编程开发模式来说,我们应该遵循以下五个原则,即solid原则

  • 单一功能原则:对象功能要单一, 不要在一个对象里添加很多功能
  • 开闭原则:扩展是开放的,修改是封闭的
  • 里氏替换原则:子类对象是可以替代基类对象的
  • 接口隔离原则:接口的用途要单一,不要在一个接口上根据不同的入参实现多个功能
  • 依赖反转原则:方法应该依赖抽象,不要依赖实例。iOS开发就是高层业务方法依赖于协议。

分层

  • 底层可以是与业务无关的基础组件,比如网络、存储等
  • 中间层一般是通用业务组件,比如账号、埋点、支付、购物车等
  • 最上层是迭代业务组件,跟新频率最高

组件化架构

一般分为协议式和中间者两种架构设计方案。

协议式架构设计主要采用的是协议式编程的思路:在编译层面使用协议定义规范,实现可在不同地方,从而达到分布管理和维护组件的目的。这种方式也遵循了依赖反转原则,

缺点:1.缺少统一调度层,难于集中管理;2.定义模式过于规范,从而使得架构的灵活性不够高。

中间者架构,采用中间者统一管理的方式,来控制App的整个生命周期中间件间的调用关系。同时,组件接口的设计也需要保持一致性,方便中间者统一调用。

解耦的精髓在于业务逻辑能够独立出来。所以,再考虑架构设计时,更多的还是需要在功能逻辑和组件划分上做到同级解耦,上下层依赖清晰,这样的结构才能使得上层组件易插拔,下层组件更稳固。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值