🌚

Kam's Online Notebook


Multicasting Delegate 的问题

或者不是问题。

Multicast Delegate

在日常的开发中,经常会使用 delegate 模式回调,有时候一个 delegate property 不够用了,就会用上 multicasting delegate,通过 forward invocation 让 observer 接收到回调。这通常工作得很好,直到模块间的配合出现了问题。

A 业务 B 业务两个模块,都监听登陆模块的登陆事件,A 在接受到 onLogin 事件后会从 B 模块读取数据,然后 A 却:

1. 不知道 B 模块数据需要在 onLogin 才能获取;
2. 知道 B 模块到数据在 onLogin 才存在但不知道 A 和 B 谁先接收 onLogin 回调。

所以编程的时候需要注意。

好吧其实更像是 B 模块的接口设计问题,如果是异步接口,A 模块就没这些个烦恼。

EOF

— Jan 21, 2022