0

ソケットで特定のイベントをリッスンする socket.io サーバーがあります。イベントが発生するたびに、イベント データがイベント ハンドラに渡されます。私の質問は、イベント ハンドラーがサーバーへの参照を持ち、そのようにイベントに直接応答する必要があるかどうかです。

eventHandler.handle = function(event){
myServerReference.emit(event, etc);
}

または、送信するデータがあるときにイベント ハンドラーがイベントを発生させ、サーバーがそれをリッスンし、次のようにデータ送信を処理する必要があります。

eventHandler.onResponse(function(data){ server.emit(data); }

長期的にはどちらがより良いアプローチですか? これを設計するより良い方法はありますか?

4

1 に答える 1

1

簡単な答えは「場合による」ですが、良い OO のプラクティスは、 「SOLID」の「S」を念頭に置くことです。

オブジェクト指向プログラミングでは、単一責任の原則は、すべてのクラスが単一の責任を持つべきであり、その責任はクラスによって完全にカプセル化されるべきであると述べています。そのすべてのサービスは、その責任と密接に連携する必要があります。

イベント ハンドラーが存在するコードの単位が多すぎる (つまり、他の人の仕事をしている) 場合は、その機能を別の場所に移動する必要があります。

于 2012-06-18T19:29:19.073 に答える