ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptとPHPでオブザーバーパターンコードを実装する方法を詳しく解説

JavaScriptとPHPでオブザーバーパターンコードを実装する方法を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-24 15:08:251134ブラウズ

オブザーバー パターンは、オブジェクトの状態が変化すると、その状態に依存するすべてのオブジェクトに自動的に通知されることを意味します。オブザーバーとオブザーバーは 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 サイトの他の関連記事を参照してください。

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