美文网首页
组件化学习

组件化学习

作者: 想做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或者代理把这部分职责放给外部控制

相关文章

  • iOS学习之入门组件化

    iOS学习之入门组件化 iOS学习之入门组件化

  • iOS 组件化方案学习

    最近不忙学习了下组件化。现在方案有蘑菇街的组件化架构和casatwy组件化方案。看了不少文章写了原理性的东西。ba...

  • 封装组件-面向对象

    tab组件化tab组件化代码 图片曝光组件化图片曝光组件化代码 轮播组件化轮播组件化代码

  • 组件化(一):搭建远程私有库

    组件化学习之路文章集合: 组件化(二):远程私有库的升级+依赖 组件化的话,我们一般都通过cocoapods库集成...

  • Git 私有库的创建

    最近在学习组件化。组件化有一个方案是利用cocoapods进行管理组件。这就涉及到了specs私有库的创建、维护和...

  • Vue.js

    轻量级 数据驱动 组件化 更易上手 学习曲线平稳 借鉴了angular指令和react的组件化 数据改变驱动视图自...

  • Android组件化 - gradle配置(一)

    一、什么是组件化 什么是组件化呢? 组件化、插件化、模块化之间有什么区别呢? 组件化:每个组件都是独立的功能模块,...

  • Android:插件化

    插件化组件化 组件化与插件化的区别 组件化是Android自然提供的,例如分成lib,test组件。插件化是热更新...

  • iOS 组件化实战篇(私有库)

    前沿 本片文章主要讲解我们项目中为什么要组件化 组件化的好处 怎么使用组件化 怎么实现组件化 为什么要组件化 ...

  • iOS组件化

    iOS组件化 iOS组件化

网友评论

      本文标题:组件化学习

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