iOS开发之常用技术点

组件化

2018-11-29  本文已影响27人  小凡凡520
说明

采用组件化,是为了组件能单独开发,单独开发是结果。要让组件能单独开发,组件必须职责单一,职责单一需要用到重构和解耦的技术,所以重构和解耦是过程。


如果我们每个组件都只是单向依赖其他组件,各个组件之间也就没有必要解耦。再换个角度说,如果一个组件职责不单一,即使跟其他组件解耦了,组件依然不能很好的工作。如何解耦只是重构过程中可选手段,代码设计的原则如依赖倒置、接口隔离、里氏替换,都可以指导我们写出好的组件。

图解

一般来讲,App的组件可以分为三层,上层业务组件、中层UI组件、底层SDK组件

具体实现

使用依赖注入,APP集成方统一去管理各个模块的依赖,每个模块也能单独编译,是业务层解耦的最佳实践。

组件拆分原则

对老工程的组件拆分,我的办法是,从底层开始拆。SDK> 模块 > 业务 。如果App没有SDK可以抽离,就从模块开始拆,不要为了抽离SDK而抽离。常见的误区是,大家一拿到代码就把公共函数提出来作为共用框架,起的名字还特别接地气,如XXCommon。

事实上,这种框架型SDK,是最鸡肋的组件,原因是它实用性很小,无非就是减少了点冗余代码。而且在架构能力不强的情况下,它很容易变成“垃圾堆”,什么东西都想往里面放,后面越来越庞大。所以,开始拆分架构的时候,尽量以业务优先,比如先拆分享模块。

如果两个组件中有共同的函数,前期不要想着提出来,改个名字让它冗余是更好的办法。如果共同耦合的是一个静态库,可以利用动态库的隔离性封装静态库,具体方法可以网上找。

上一篇 下一篇

猜你喜欢

热点阅读