PHP内部の通知メカニズムを実現し、一つのクラスの属性が変化した場合、もう一つのクラスは通知を受け取ることができる.

1322 ワード

設計モードせっけいもーど:オブザーバモードオブザーバモードオブザーバモード
オブジェクトのステータスが変更されると、依存するオブジェクトはすべて通知され、自動的に更新されます.
シーンの操作
1つのイベントが発生した後、一連の更新操作を実行します.従来のプログラミング方式は、イベントのコードの後に直接処理ロジックを加えることであり、更新されたロジックが増えると、コードのメンテナンスが難しくなり、この方式は結合され、侵入的であり、新しいロジックを増やすにはイベントのテーマを変えるコードが必要である.観察者モードは低結合,非侵入式の通知と更新機構を実現した.
リファレンスリンク
PHPオブザーバモード
observers[] = $observer;
    }
    public function notify($info = '')
    {
        foreach ($this->observers as $observer) {
            $observer->getInfo($info);
        }
    }
}

interface Observer
{
    function getInfo($info = '');
}

class Observer1 implements Observer
{
    
    public function getInfo($info = '')
    {
        echo $info;
    }
}

class Events extends EventGenerator
{
    private $info = 'init';

    public function trigger($info = '')
    {
        echo "before:".$this->info."\r
"; $this->info = $info; echo "after:".$this->info."\r
"; $this->notify($info); } } $event = new Events(); $event->addObservers(new Observer1()); $event->trigger('hello world');