ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブザーバー パターン オブザーバー パターンの欠点 オブザーバー パターンのコード オブザーバー パターンのクラス

PHP オブザーバー パターン オブザーバー パターンの欠点 オブザーバー パターンのコード オブザーバー パターンのクラス

WBOY
WBOYオリジナル
2016-07-29 08:52:561128ブラウズ

オブザーバー パターンについて私が理解していることは、イベントをトリガーするときに、オブジェクトにこの操作を伝えたいことを伝え、オブジェクト全員にこの操作を実行させる、つまりオブジェクトをこのイベントにバインドするということです。

1. 基本クラスを定義します(通知したいオブジェクトであるオブザーバーを追加し、オブザーバーに通知するために使用します)

EventGenerator.php

<code><span><span><?php</span><span>abstract</span><span><span>class</span><span>EventGenerator</span>
{</span><span>//存储观察者,因为可以有多个要通知的对象,所以是一个数组</span><span>private</span><span>$observers</span> = <span>array</span>();
    <span>//添加观察者,也就是我想要通知的对象</span><span>public</span><span><span>function</span><span>addObserver</span><span>(<span>$observer</span>)</span>
    {</span><span>$this</span>->observers[] = <span>$observer</span>;
    }
    <span>//通知观察者</span><span>public</span><span><span>function</span><span>notify</span><span>()</span>
    {</span><span>//取出所有的对象去执行操作</span><span>foreach</span>(<span>$this</span>->observers <span>as</span><span>$observer</span>)
        {
            <span>//这里我写一个update方法,这里就要求我所有的通知对象必须要有update操作,所以一会我会定义一个借口,让所有的观察者强制实现这个方法</span><span>$observer</span>->update();
        }
    }
}


<span>?></span></span></span></code>

すべてのオブザーバーが更新メソッドを実装するためのインターフェイスファイルを定義します。 Observer.php

<code><span><span><?php</span><span><span>interface</span><span>Observer</span>
{</span><span><span>function</span><span>update</span><span>()</span>;</span>
}

<span>?></span></span></code>

は、オブザーバーパターンを実装するファイルを定義します。 $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i

').text(i)); }; $numbering.fadeIn(1700); }); });
上記では、オブザーバー モードと PHP コンテンツを含めて PHP オブザーバー モードを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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