Heim > Artikel > Backend-Entwicklung > Was ist das Beobachtermuster in PHP? Wie benutzt man es?
Wir sind möglicherweise nicht so vertraut mit dem Beobachtermuster. Es handelt sich um ein Ereignissystem, was bedeutet, dass dieses Muster es einer Klasse ermöglicht, den Status einer anderen Klasse zu beobachten, die Beobachtungsklasse kann Benachrichtigungen erhalten Ergreifen Sie entsprechende Maßnahmen. Das Beobachtermuster bietet eine weitere Möglichkeit, eine enge Kopplung zwischen Komponenten zu vermeiden. Lassen Sie uns in diesem Artikel besprechen, was das Beobachtermuster ist.
Verwandte Empfehlungen: Was sind das Fabrikmuster und das Fabrikmethodenmuster in PHP?
Beobachter:
Es handelt sich um ein Ereignissystem, was bedeutet, dass dieses Muster es einer Klasse ermöglicht, den Zustand einer anderen Klasse zu beobachten. Wenn sich der Zustand der beobachteten Klasse ändert, kann die beobachtende Klasse die Benachrichtigung erhalten und übernehmen entsprechende Aktionen; das Beobachtermuster bietet eine weitere Möglichkeit, eine enge Kopplung zwischen Komponenten zu vermeiden.
Nehmen wir weiterhin Code als Beispiel. Wir erstellen dann eine Klasse und schreiben dann ein Mitgliedsattribut in die Klasse Ein Array zum Speichern von Beobachtern. Anschließend definieren wir eine Methode zum Speichern und Hinzufügen von Beobachtern. Lassen Sie den Beobachter eine Benachrichtigung erhalten und eine bestimmte Reaktion ausführen
<?php class Man { //用来存放观察者 protected $observers = []; //添加观察者方法 function addObserver($observer) { $this->observers[]=$observer; } //花钱方法 function buy() { //当被观察者做出这个行为的时候,让观察者得到通并且做出一-定的反应 foreach ($this->observers as $girl) { $girl->pome(); } } } class GirlFriend { function pome() { echo'我只明白一件事,爱一个人,是那么痛苦<br />'; } } //创建对象 $xiaoming = new Man(); $xiaohua =new GirlFriend(); $xiaoli = new GirlFriend(); //添加观察者 $xiaoming->addObserver( $xiaohua); $xiaoming->addObserver($xiaoli); $xiaoming->buy();Die laufenden Ergebnisse lauten wie folgt: Wenn es eine Möglichkeit gibt, einen Beobachter hinzuzufügen, gibt es eine Möglichkeit, den Beobachter zu löschen. Daher müssen wir auch eine Löschbeobachtung hinzufügen. Die Methode des Autors,
function delObserver($observer) { //查找对应值在数组中的键 $key = array_search($observer,$this->observers); //根据键删除值,并且数组重新索引 array_splice($this->observers, $key, 1); } }
//Löschen
$xiaoming->delObserver( $xiaohua);Der Code lautet wie folgt: Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist das Beobachtermuster in PHP? Wie benutzt man es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!