Observer パターンの紹介
Observer パターン (Observer) は、観察者を観察対象から完全に分離します。たとえば、ユーザー インターフェイスはオブザーバーとして機能することができ、ビジネス データは観察対象になります。ユーザー インターフェイスはビジネス データの変更を監視し、データの変更が発見されると、その変更がインターフェイスに表示されます。オブジェクト指向設計の原則の 1 つは、システム内の各クラスが他の側面ではなく特定の機能に焦点を当てるということです。オブジェクトは 1 つのことを実行し、それをうまく実行します。 Observer パターンはモジュール間に明確な境界を描き、アプリケーションの保守性と再利用性を向上させます。
オブザーバー デザイン パターンは、オブジェクト間の 1 対多の依存関係を定義するため、オブジェクトの状態が変化すると、それに依存するすべてのオブジェクトが通知され、自動的に更新されます。
実装方法
オブザーバー パターンを実装するには、多くの方法があります。基本的に、このパターンには、オブザーバーと観察されるオブジェクトという 2 つの役割が含まれている必要があります。 PHP では、SplSubject インターフェイスと SplObserver インターフェイスを使用してオブザーバー パターンを実装します。
SplSubject 観測対象オブジェクト
SplSubject { /* 方法 */ abstract public void attach ( SplObserver $observer ) //将被观察对象注册到观察者中 abstract public void detach ( SplObserver $observer ) //被观察对账取消注册 abstract public void notify ( void ) //通知所有观察者 }
SplObserver Observer
SplObserver { /* 方法 */ abstract public void update ( SplSubject $subject ) //观察者接受到通知的时候,作出相应改变 }
UML クラス図
例
ユーザー登録が成功した後、ユーザーのデータを に保存する必要があります。データベースを作成し、ユーザーに電子メールを送信します。オブザーバー コードを使用して実装します。
登録が成功すると、オブザーバーは、notify メソッドを呼び出して、すべてのオブザーバーに通知します。
りー
上記は、オブザーバー パターンとデザイン パターンを含む、PHP デザイン パターン: オブザーバー パターンを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。