オブザーバーパターンに基づいてAPIを提供したいパッケージを設計しています。つまり、ゼロ以上の利害関係者をトリガーするシグナルを送信したいポイントがあります。それらの利害関係者は、必ずしもお互いについて知る必要はありません。
このようなAPIを最初から実装できることは知っていますが(たとえば、チャネルのコレクションやコールバック関数を使用して)、そのようなAPIを構造化するための好ましい方法があるかどうか疑問に思いました。
私が遊んだ多くの言語やフレームワークでは、これらのAPIを構築して、ユーザーが期待するとおりに動作するようにする標準的な方法があります。たとえば、g_signal_*
glibベースのアプリケーション、イベント、addEventListener()
JavaScript DOMアプリの関数、または。ネット。
Goに似たものはありますか?そうでない場合は、Goでより慣用的なこのタイプのAPIを構築する他の方法はありますか?