组件化学习

原文链接: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或者代理把这部分职责放给外部控制

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。