软件的高内聚,低耦合是一个成熟项目的目标,也对项目的持续发展有利。随着一个商业软件的发展和功能的丰富扩展,对应的软件项目会逐渐变得庞大,后期的维护工作之一便是模块化解耦。
本文针对近期在iOS项目中的模块化解耦进行简单探讨,欢迎大家一起交流。
按照 京东iOS客户端组件管理实践 这篇文章中的观点,模块化解耦的实现方式简单分为两类:
- 代码解耦
- CocoaPods管理
当然这是从实现方式上来分,从项目的代码功能上来看,则又可以将项目代码简单分为:
- 基础组件
- 业务组件
业务组件基本上与各App的业务处理相关,在不同的App间可重用性并不如基础组件。基础组件中又可以分为UI组件及功能组件,可复用性强。
其实在实践中,鉴于项目进度和时间的因素,我们开发过程中,难免将各个组件糅合到一起,在后期维护变得困难,解耦时也出现牵一发而动全身的情形,在架构较差的项目中,后期的升级改造会尤为困难。
那么如何将它们抽离解耦呢?
借鉴唐巧这篇文章: 《 被误解的 MVC》 的思想,可以简单地将待抽离的模块先按照MVC的架构&