ホームページ  >  記事  >  バックエンド開発  >  C# による Observer パターンのサポート (1)

C# による Observer パターンのサポート (1)

黄舟
黄舟オリジナル
2016-12-21 14:55:511289ブラウズ

まず第一に、オブザーバー パターンとは何かを理解しましょう。オブザーバー パターンはオブジェクトの動作パターンであり、依存関係/スレーブ パターン、パブリッシュ/サブスクライブ パターン、ソース リスニング パターンとも呼ばれます。オブザーバー パターン: オブジェクト間の 1 対多の依存関係を定義します。オブジェクトの状態が変化すると、それに依存するすべてのオブジェクトが通知され、自動的に更新されます (GOF)。

例えば、私たちのプロジェクトにはメールシステムがあり、メールを送信する際に、メール受信者に通知するためにSMSとRTX情報を送信する必要がある場合、オブザーバーモードを使用して設計することができます。将来、3 番目の通知方法を追加する必要がある場合、システムは新しい通知方法を簡単に追加します。オブザーバー パターンは C# で広く使用されており、最も一般的なのは、さまざまなコントロールのイベント リスニング メカニズムを使用することです。

オブザーバー パターンの実装には、次の 4 つのタイプの参加者があります。

1. 抽象的なサブジェクト/ターゲット (Subject)

任意の数のオブザーバーを持つことができ、コレクション オブジェクトにオブザーバーを保存できます。 オブザーバーへの参照、通常は抽象クラスとインターフェイスで実装されるオブザーバー オブジェクトを追加および削除するためのインターフェイスを提供します。

2. 抽象オブザーバー (オブザーバー)

すべての具体的なオブザーバーに対して定義された更新インターフェイスは、サブジェクト/ターゲットが変更されると、特定のオブザーバーに自身を更新するように通知されます。通常、抽象クラスまたはインターフェイスを使用して実装されます。

3. 具体的なサブジェクト/ターゲット (ConcreteSubject)

特定のオブザーバー オブジェクトに関連するステータスを保存し、そのステータスが変化すると、登録されているすべてのオブザーバーに通知が送信されます。特定の対象/ターゲットは、観察対象とも呼ばれます。

4. 具体的なオブザーバー (ConcreteObserver)

は、特定のサブジェクト/ターゲットへの参照を維持し、特定のサブジェクト/ターゲットと一致する関連する状態を保存し、特定の抽象オブザーバーが自身の状態を更新するための更新インターフェイスを実装します。 /目標ステータス。

オブザーバーモードを使用してシンプルなメール送信システムを実装し、メール送信時に SMS および RTX メッセージを送信してメール受信者に通知します。

上記は、C# のオブザーバー モードのサポート (1) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。