原文链接:https://www.jianshu.com/p/80354a279926
1、组件化定义
将一个单一的工程分解为各个独立的组件,然后按照某种方式任意组织成为一个拥有完整业务逻辑的工程
2、组件化产生的原因
- 耦合性严重
- 编译速度慢
- 测试不独立
- 无法使用自己擅长的设计模式
- 等等等
3、组件化的优势
- 组件的独立:可以独立编译和独立测试
- 资源的重用
- 高效的迭代:增加或删除某些模块很便捷
- 拆分组件后,采用静态库、framework库的形式二进制化组件能够大大提高项目的编译速度
4、组件化应该考虑的问题
-
组件的划分:
1、基础组件:基本配置(常量、宏)、网络框架封装、工具类(日期时间处理、文件处理、设备信息等)、分类扩展(个中系统类的扩展)
2、功能组件:常用控件(轮播器、选项菜单、图文菜单)、功能(断点续传、音频处理等)
3、业务组件:业务线一(子业务线一、子业务线二。。。。) -
组件的层级关系:
0、业务组件属于基础组件和功能组件的上一层级
1、基础组件和功能组件属于同一层级
2、功能组件不应该依赖于基础组件,如果有用到基础组件的代码,建议直接拷贝一份到组件内部
3、各组件内部的组件之间也不应该有依赖关系
4、在不产生引用关系的前提下如果要使用其他组件的内容,应该做好组件之间的通讯 -
组件的存在形式
- 组件内部:根据设计模式划分文件夹结构
- 组件形式(对外):每个组件都是以pod库的形式存在
- 组件测试:单独的测试工程(可以通过创建pod模板库的形式) -
以Cocoapods的形式安装各个组件
-
组件间的通讯
1、中间件的方式:项目创建一个中间件集成各种服务 -
分离组件的难点 — 解耦
1、组件里面依赖其他公共功能:解决办法copy
2、组件内部需要对接某个服务:使用block或者代理把这部分职责放给外部控制
网友评论