Comment fonctionne le modèle d'observateur en PHP ?
Jun 03, 2024 pm 02:09 PMLe modèle Observer en PHP est un modèle de conception qui permet aux observateurs de s'abonner et de répondre aux changements d'état dans un sujet. Lorsque l'état du sujet change, elle en informe les observateurs, qui peuvent se mettre à jour en conséquence : la classe topic maintient une liste d'observateurs et fournit des méthodes pour attacher et supprimer des observateurs. La classe topic fournit des méthodes pour obtenir et définir l'état, et déclenche des notifications d'observateur lorsque l'état change. La classe observer définit une méthode de mise à jour qui est appelée lorsque l'état du sujet change. Les classes d'observateurs concrètes implémentent des méthodes de mise à jour pour mettre à jour leur propre logique. En pratique, les observateurs s'abonnent aux sujets et lorsque l'état du sujet change, l'observateur est averti et se met à jour.
Comment fonctionne le modèle Observer en PHP
Introduction
Le modèle Observer est un modèle de conception logicielle qui permet à des objets (appelés observateurs) de s'abonner aux changements d'état d'autres objets (appelés sujets) et de répondre à cela. Lorsque l'état du sujet change, il en informe tous les observateurs, et ces derniers peuvent se mettre à jour en conséquence.
Structure du code
En PHP, nous pouvons utiliser la structure de classe suivante pour implémenter le modèle d'observateur :
Classe de thème :
class Subject { private $observers = []; private $state; public function attach(Observer $observer) { $this->observers[] = $observer; } public function detach(Observer $observer) { $index = array_search($observer, $this->observers); if ($index !== false) { unset($this->observers[$index]); } } public function getState() { return $this->state; } public function setState($state) { $this->state = $state; $this->notifyObservers(); } private function notifyObservers() { foreach ($this->observers as $observer) { $observer->update($this); } } }
Classe d'observateur :
interface Observer { public function update(Subject $subject); }
Classe d'observateur concret :
class ConcreteObserver1 implements Observer { public function update(Subject $subject) { // 更新自己的逻辑 } } class ConcreteObserver2 implements Observer { public function update(Subject $subject) { // 更新自己的逻辑 } }
Cas pratique
Nous pouvons utiliser l'exemple de code suivant pour illustrer l'application du modèle Observer dans la pratique :$subject = new Subject(); $observer1 = new ConcreteObserver1(); $observer2 = new ConcreteObserver2(); $subject->attach($observer1); $subject->attach($observer2); $subject->setState('New state'); // 触发更新 // 观察者收到更新并相应更新自己
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
