3

Pub / Subライブラリを利用する緩く結合されたJavascriptモジュール(Webブラウザーで)を使用するときに、イベント名のマジックストリングを回避する方法を示すパターンはありますか?

私はrequire.jsとamplicate.jsを使用して、モジュラーベースのWebアプリケーションを開発しています。私は増幅を使用してイベントをパブリッシュおよびサブスクライブしていますが、もちろんこれには、パブリッシャーとサブスクライバーの両方がイベントラベルが何であるかを知っている必要があります。これらのイベントラベルにマジックストリングを使用することは避けたいと思います。各モジュールには、関連付けられた「eventsList.js」ファイル、またはモジュールが公開するイベントを一覧表示する同様のファイルがあると考えていました。他のモジュールのイベントをサブスクライブするモジュールの場合、対象のすべてのモジュールのすべてのイベントリストをインポートします。これにより、イベントラベルがグローバル名前空間にリークするのを防ぐこともできます。

特に、アプリケーション内のすべてのモジュールに「マスターイベントリスト」を設定することは避けたいと思います。

誰かが似たようなことを達成しましたか?

4

1 に答える 1

2

トピックにマジックストリングを使用することも心配です。適切な解決策を達成しましたか?私は現在、特に満足していないマスターイベントリストに行きました:

var app = {
    events: {
        mod1: {
            topica: 'topic-a',
            topicb: 'topic-b'
        },
        mod2: {
            topicx: 'topic-x',
            topicy: 'topic-y'
        }
    }
}

//usage
amplify.publish(app.events.mod1.topica)
于 2012-08-24T21:11:19.510 に答える