Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung des Beobachtermusters von PHP-Entwurfsmustern

Detaillierte Erläuterung des Beobachtermusters von PHP-Entwurfsmustern

韦小宝
韦小宝Original
2017-11-15 10:16:551971Durchsuche

Definieren Sie eine Eins-zu-viele-Abhängigkeitsbeziehung zwischen Objekten, sodass die zugehörigen abhängigen Objekte benachrichtigt und automatisch aktualisiert werden, wenn sich der Status eines Objekts ändert. Alias ​​​​des Observer-Musters umfassen Publish/Subscribe-Muster, Model/View-Muster, Source/Listener-Muster oder Dependents-Muster. Beobachtermuster ist ein Objektverhaltensmuster. BeobachtermusterDefinieren Sie Eins-zu-viele-Abhängigkeiten von Objekten, sodass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert werden, wenn sich der Status eines Objekts ändert!


<?php
/**
 * 观察者模式
 * @author: Mac
 * @date: 2012/02/22
 */

abstract class Pa
{
    private $_observers = array();

    public function register($sub)
    {
    }

    public function trigger()
    {
    }
}

class Paper extends Pa
{ /* 主题    */
    private $_observers = array(); // 存放new的对象

    public function register($sub)
    { /*  注册观察者 */
        $this->_observers[] = $sub;
    }


    public function trigger()
    {  /*  外部统一访问    */
        if (!empty($this->_observers)) {
            foreach ($this->_observers as $observer) {
                $observer->update();
            }
        }
    }
}

/**
 * 观察者要实现的接口
 */
interface Observerable
{
    public function update();
}

class Subscriber1 implements Observerable //观察者
{
    public function update()
    {
        echo "观察者1收到执行通知 执行完毕\n";
    }
}

class Subscriber2 implements Observerable //观察者2
{
    public function update()
    {
        echo "观察者2收到执行通知 执行完毕\n";
    }
}


/*  测试    */
$paper = new Paper();
$paper->register(new Subscriber1());
$paper->trigger();

Das Beobachtermuster ist ein sehr häufig verwendetes Entwurfsmuster, egal ob es sich um eine mobile Anwendung, eine Webanwendung oder eine Desktopanwendung handelt. Es realisiert die Verknüpfung zwischen Objekten , und das Beobachtermuster kann in jedem Szenario verwendet werden, das eine Eins-zu-eins- oder Eins-zu-viele-Objektinteraktion beinhaltet.

Verwandte Empfehlungen:

Was Sie über den PHP-Beobachtermodus nicht verstehen

Codebeispiele des PHP Observer Pattern

PHP Observer Pattern

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beobachtermusters von PHP-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn