组件化

作者: HAPPY小元宝 | 来源:发表于2018-03-11 21:39 被阅读19次

    1、什么是组件化?

    • 组件分以下几类:
      • 独立业务模块:比如项目中的登录模块、设置模块、资源模块等。
      • 不具备业务场景的功能模块:比如网络模块、相册模块、数据库模块等。

    2、为什么要进行组件化?

    • 随着项目的不断迭代,各个模块会越来越复杂,各个模块相互依赖,而且每个模块可能会有共同的业务逻辑,导致整个项目维护起来比较的麻烦。
    • 可以采用组件化,把每个业务逻辑和模块分离,单独管理,这样比较方便维护,各个开发人员只需要关心自己的模块就好了。

    3、组件化的好处:

    • 分工更加明确、提高开发效率。
    • 复用性更好,能迅速的组成更多的APP。
    • 代码解耦
    • 更容易测试、编译bug排除。

    4、组件化方案

    • 关键问题:解除Mediator(中间件)对各个组件的依赖。
      • 注册(路由、接口、协议) + 接口层(路由文档)
      • Runtime反射调用:
             Class cls = NSClassFromString(@"XXX");
        

    5、路由注册

    • 优点:多平台通用
    • 缺点:
      • 没办法传递非常规范的参数(比如图片、方法)
      • 需要维护一个路由文档
      • 每个组件都要初始化,内存里需要保存一份表,组件多了就会有内存问题。

    6、接口注册

    • 有点:多平台通用
    • 缺点:
      • 它不是直接通过Mediator调用组件方法,而是通过Mediator拿到组件对象,再自行去调用组件方法。
      • 多了一个协议接口层,服务提供者必须依赖协议接口层。

    7、经过组件化的项目示意图:

    • 组件化前:


      Snip20180311_9.png
    • 组件化后:


      Snip20180311_10.png

    8、如何进行组件化?

    • 使用Cocoapods管理组件化开发
    • podspec:描述自己组件工程的代码目录和资源目录在哪,还有自己组件工程所依赖其他框架,到时候就会根据podspec的指引去引入自己的仓库代码。

    相关文章

      网友评论

          本文标题:组件化

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