私は次のシナリオをどのように処理するのが最善かを考えようとしています。私は、メッセージを受信して処理し、応答をクライアントに返すサーバーを持っています。私はprocessing
ステップに、実行された処理の結果とオブジェクトに関する詳細情報を返すようにしたい場合があります。C#でステータスコードまたは複合オブジェクトを返す理想的な方法は何ですか?
私は、次のようなコードを持っている:私は何をしたいか
public void HandleMessage(Connection conn, Packet packet) {
var somedata = packet.Read();
var result = Process(somedata);
if (result == typeof(Message))
SendA(result);
if (result == typeof(MyObject))
SendB(result, extraInfo);
}
public [what goes here] Process(object data) {
if (validated)
return data;
else
return Message.Failed;
}
は責任の分離を作成することです。
- レシーバ:有意義なオブジェクト
- プロセッサにデータを解析:解析されたデータに作用し、ステータスコードまたはオブジェクトを返します。
- 送信者:プロセッサから返されたデータを解釈し、パケットを構成し、これをクライアントに送信します。
このようなことを達成するためにどのような設計を実装する必要がありますか?
プロセスは何を返す必要がありますか?それは単なる失敗かデータかですか? –
@EvanTrimboli列挙型またはデータのいずれかです。私は、データを必要としないクライアントに送る標準的なメッセージを表すためにenumを使用しています。 – Ci3