オブザーバー パターンは、オブジェクトの状態が変化すると、その状態に依存するすべてのオブジェクトに自動的に通知されることを意味します。オブザーバーとオブザーバーは 1 対多の関係になります。この本では、現在のシステム時刻を取得してコマンド ラインに出力するという、非常にわかりやすい例も示しています。ハードコーディングする場合は、最初に時間を取得してから表示を処理するメソッドを定義するのが非常に簡単です。このように時間取得機能は処理表示用のドラッグボトルなので再利用できません。
オブザーバー パターンを使用する場合は、タイミングと現在の時刻の取得に使用するクラス、もう 1 つは時刻の表示に使用するクラスの 2 つを定義できます。時間を表示するクラスはオブザーバーです。これの利点は相互依存性を減らすことです。最初のクラスは、変更後に何も処理する必要はありません。通知を送信して、特定のものが処理されることをオブザーバーに通知するだけです。たとえば、ある日、最初のクラスをまったく関与させずに、時間を別の形式で表示したり、複数の方法で時間を表示したりしたいと考えます。
PHPの実装
//被观察者 class Subject { private $_observers; public function __construct() { $this->_observers = array(); } public function add_observer($obs) { $this->_observers[] = $obs; } public funtion delete_observer($bos) { $index = array_search($bos, $this->_observers); unset($this->_observers[$index]); } public function notify_observers() { foreach($this->_observers as $v) { $v->update(); } } } //观察者 class Observer { public function __construct() { do sth; } public function update() { do sth; } } //实例 $sub = new Subject(); $obs = new Observer(); $sub->add_observer($obs); $sub->notify_observers();
jsの実装
jsの実装は面倒ではありませんが、配列内の指定された要素を削除するなど、使いやすくするためにいくつかのツール関数を記述する必要があります。以下では最も単純な実装方法のみを使用します。
りー以上がJavaScriptとPHPでオブザーバーパターンコードを実装する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。