我正在设计一个包,我想在其中提供基于观察者模式的 API:也就是说,有些地方我想发出一个信号,触发零个或多个相关方。那些利益相关方不一定需要相互了解。
我知道我可以从头开始实现这样的 API(例如,使用通道或回调函数的集合),但想知道是否有构建此类 API 的首选方式。
在我使用过的许多语言或框架中,都有构建这些 API 的标准方法,以便它们按照用户期望的方式运行:例如,g_signal_*
用于基于 glib 的应用程序、事件和addEventListener()
JavaScript DOM 应用程序的函数,或用于。网。
Go有类似的东西吗?如果没有,是否有其他方式来构建这种在 Go 中更惯用的 API?