美文网首页
组件化学习

组件化学习

作者: 想做Reader和Coder | 来源:发表于2020-06-10 07:17 被阅读0次

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

    相关文章

      网友评论

          本文标题:组件化学习

          本文链接:https://www.haomeiwen.com/subject/vnfltktx.html