ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン - オブザーバー パターン_PHP チュートリアル
オブザーバー パターン (パブリッシュ/サブスクライブ パターンとも呼ばれます)。このモードでは、ターゲット オブジェクトは、それに依存するすべてのオブザーバー オブジェクトを管理し、自身の状態が変化したときに積極的に通知を送信します。これは通常、各オブザーバーが提供するメソッドを呼び出すことによって実現されます。このパターンは、イベント処理システムの実装によく使用されます。
UML クラス図:
重要な役割:
抽象通知役割 (INotifier): 通知のインターフェイス ルールを定義します。
具体的な通知者の役割 (ボス): 抽象的な通知者インターフェイスを実装し、ステータスの変更を受信するとすぐにオブザーバーに通知を送信します。
抽象オブザーバー ロール (IObserver): 通知を受信した後の操作 (更新) インターフェイス ルールを定義します。
特定のオブザーバーの役割 (JingDong): 特定の操作メソッドを実装します。
コアコード:
リーリー
クライアントコードを呼び出す:
リーリー
利点:
1. 抽象モデルには 2 つの側面があり、一方は他方に依存します。これらの側面を個別のオブジェクトにカプセル化すると、それらを個別に変更して再利用できるようになります。
2. 1 つのオブジェクトの変更により、1 つまたは複数の他のオブジェクトが変更されるため、オブジェクト間の結合が減少する可能性があります。
3. オブジェクトは、他のオブジェクトが誰であるかを知らなくても、他のオブジェクトに通知する必要があります。システム内にトリガー チェーンを作成する必要があります。オブジェクト A の動作はオブジェクト B に影響を与え、オブジェクト B の動作はオブジェクト C に影響を与えます。オブザーバー パターンを使用してチェーン トリガー メカニズムを作成できます。