Définissez une relation de dépendance un-à-plusieurs entre les objets, de sorte que chaque fois que l'état d'un objet change, ses objets dépendants associés sont notifiés et automatiquement mis à jour. Les alias du modèle d'observateur incluent le modèle de publication/abonnement, le modèle de modèle/affichage, le modèle de source/d'écoute ou le modèle de dépendances. Le Modèle d'observateur est un modèle de comportement d'objet. Modèle d'observateurDéfinissez des dépendances un à plusieurs d'objets, de sorte que lorsqu'un objet change d'état, toutes ses dépendances seront notifiées et automatiquement mises à jour !
<?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();
Le modèle d'observateur est un modèle de conception très fréquemment utilisé. Qu'il s'agisse d'une application mobile, d'une application Web ou d'une application de bureau, le modèle d'observateur est presque partout. Il réalise la liaison entre les objets. , et le modèle d'observateur peut être utilisé dans n'importe quel scénario impliquant une interaction d'objet un à un ou un à plusieurs.
Recommandations associées :
Ce que vous ne comprenez pas sur le mode observateur PHP
Exemples de code du modèle d'observateur PHP
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!