欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

组件间的通信

程序员文章站 2024-02-26 22:41:46
...

随着业务不断扩充,原先的单一业务结构已经无法支撑起庞大的业务。此外,因为业务复杂,如果还是单一的结构,那么耦合度非常高,维护成本越来越大。所以出现了组件,所谓的组件,我觉得定义成模块功能更合适点。

组件分类

主要分为两大类:

  • 基础组件
  • 业务组件
    其中基础组件里面包含网络库UI库...
    业务组件顾名思义就是每个业务分装成一个独立的模块

通信

越来越多的业务抽离成组件了,那么怎么做到组件间的通信呢?现在业内有比较多的方案,网上也有很多,我比较推荐的是 casatwy 的组件化方案。使用Category+Target-Action模式来构建Mediator,从而进行模块间的通信
具体原理,为什么这么实现就不啰嗦了,大家可以参考上面的文章,应该会让大家获益良多。

总结

下面我总结下上述方案的抽象过程

native调用
moduleA -> mediator+category(params) -> mediator(performTarget) -> moduleB (Action)
url远程调用(http|https, native scheme, other native scheme)
moduleA -> router -> mediator(performActionUrl) -> mediator(performTarget) -> moduleB(Action)  (native scheme)
moduleA -> router -> mediator+category(params) -> mediator(performTarget) -> moduleB(Action) (http|https)
moduleA -> router -> [[UIApplication sharedApplication] openURL:url] (other native scheme)