最初は、送信されたオブジェクトのタイプをチェックするifステートメントを実行していましたが、さまざまなタイプのメッセージオブジェクトがたくさんある場合は、それが非常に苦痛になる可能性があります。それから私は考えて、呼び出されるイベントを作成しました。次に、特定のタイプがそのイベントをリッスンし、呼び出されたときにそれをチェックするときに何かを実行する各関数を作成しました。
ifステートメントの方法
//code for after message received - if you need the code for listening for the message i can give it but i don't see a need
Type msgType = msgObj.getType();
if(msgType == messageType1){
//do stuff
}
else if(msgType == messageType2){
//do more stuff
}
// and so on
あなたが見ることができるように、あなたがたくさんの異なるタイプのメッセージを持っているならば、これはひどいことがありえます
イベントの道
private delegate messageEvent(object message);
public event messageEvent onMessage;
//code after message received
onMessage(msgObj);
// sample function that will listen for the onMessage event
private void onMessage(object message){
if(message.getType() == typeForThisFunction){
//do somthing
}
}
ご覧のとおり、これはifステートメントよりも少し簡単ですが、すべてがリッスンしていることを確認するのは面倒であり、異なるタイプのメッセージが多数あり、それらすべてを同時にチェックする場合にも問題が発生する可能性があります。
これをもっと簡単に行うためのより良い方法はありますか?