组件化

作者: 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