组件化的概念

951 阅读2分钟

是什么?

组件化就是将一个单一的工程分解为各个组件,然后按照某种方式任意组织成为一个拥有完整业务逻辑的工程.  

为什么有组件化?

1.解决高度耦合的问题,出一个bug会带出别的bug,

2.测试不独立,一个bug可能会影响整个app不能测.

3.xib等影响编译时间,可以使用静态库打包,但是不能保证没有依赖

4.设计模式冲突,不同组件之间可以使用不同的设计模式.

优势是什么?

1.组件之间相互独立, 节约编译时间,降低耦合性

2.资源重用

3.高效迭代,节约测试,开发的时间

4.加快编译速度

正题

  • 组件的划分
  1. 基础组件 :基础配置(宏,常量),分类,网络层封装.工具类(日期时间的处理,文件处理,设备处理)

为什么需要网络封装:因为加入需要替换AFN,则只需要改变二次封装的代码,不需要改变业务代码的请求.

2.  功能组件:控件(ui,弹幕,轮播器,选项卡);功能(断电续传,音频处理)
3. 业务组件:各个业务线.

  • 组件之间的关系
  1. 基础组件和功能组件是同层组件,不能产生依赖关系.
  2. 同类型组件内部之间,也不能产生依赖关系.功能组件之间的不能依赖.
  3. 业务组件依赖于基础和功能组件

  • 组件之间的通信

  1. 同层次或同类之间的组件

1️⃣通过中间件传递,互相之间引用属性或方法,都通过中间件要.

  • 组件化的难点--解耦
  1. 组件内部依赖其他组件的公共功能,(用copy?这么low吗)
  2. 组件内部使用外部服务通过代理或block或中间件解耦(??????????/)使用场景:更换第三方框架.
  • 组件化的方式
  1. pod 私有库
  2. 子工程,子工程之间相互import 使用import "../组件01/组件01/Person.h"

没有分开的,会越来也慢

 3.  framework的方式:没有pods好管理.