Meerkat-Swift-Signals一对多通信信号机制

一对多通信的场景里,用 Meerkat-Swift-Signals 搭信号机制真的挺省事儿的。它基于观察者模式,把通信搞得又松散又灵活,不用写一堆耦合代码,维护起来也清爽多了。

每个信号就是一个属性,你可以把它想象成“事件管道”,谁关心它就订阅,不关心就当没这回事。挺适合那些状态频繁变化、又不想到处传回调的场景,比如表单输入同步、组件联动啥的。

要用也简单,ObserversDispatcher.swiftObserversDispatchable.swift 两个文件拷进项目里就行。定义个协议、加个信号属性,谁想监听就注册个闭包。

比如你有个 NameHolder 协议,里面定义了 nameChanged 信号,谁关心这个属性变化,就监听这个信号,一旦变化,回调就触发了。写法也不啰嗦,用起来蛮顺手的。

哦对了,信号可以支持多个观察者,这点还挺实用,比如一个输入框变化,多个模块都要响应,就不用搞共享状态或者通知中心那一套了。

如果你平时写 Swift,又经常要在对象之间传状态、传消息,Meerkat 这个工具可以说是个轻量级的好帮手。比 RxSwift 轻不少,学习成本也低。

你可以看看 观察者发布/订阅 的概念,和 Meerkat 这种设计还挺像的。

zip 文件大小:77.94KB