1

私の質問は言語固有ではないと思います。

EventConsumerたとえば、他のオブジェクトイベントをリッスンしEventProducer(正確には.Netイベントに対して)、適切に反応する必要があるクラスがあるFormので、そのコンストラクターパラメーターの1つはそのオブジェクト(public EventConsumer(EventProducer producer, ...))です。コンストラクターでは、プロデューサーのイベントをサブスクライブします。これでほぼ完了です。私は本当に消費者への言及を続ける必要はありません。イベントプロデューサーもガベージコレクションになります。

では、何もしないように見えるような奇妙な行をコードに含めても大丈夫ですか?例えば。:

new EventObserver(eventConsumer, config);

それは正しい方法ですか?それは少し奇妙ではありませんか?

4

1 に答える 1

1

オブジェクトの作成自体が奇妙であるのは確かです。6か月後にコードを見ると、ほぼ間違いなくあなた(または他の開発者)を混乱させるでしょう。

EventObserverインスタンスの作成を行うために静的メソッドをクラスに追加することで、より「使いやすく」なります。

public static CreateObserver(EventProducer eventProducer)
{
    // Create new instance of EventObserver to handle events from producer
    //  no need to keep track of object as it will be appropriately 
    //  garbage collected.
    new EventOvserver(eventProducer);
}

次に、コードを呼び出しているのはすっきりしています。

EventObserver.CreateObserver(eventProducer);
于 2013-04-26T07:58:22.233 に答える