Maison développement back-end tutoriel php php设计模式 Observer(观察者模式)_php技巧

php设计模式 Observer(观察者模式)_php技巧

May 17, 2016 am 09:17 AM
php设计模式 观察者模式

复制代码 代码如下:

/**
* 观察者模式
*
* 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新
* 能够便利地创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定功能
* 插件系统
*/
class Observerable
{
private $_observers = array();

public function registerObserver($observer)
{
$this->_observers[] = $observer;
}

public function removeObserver($observer)
{
$key = array_search($observer,$this->_observers);
if(!($key === false))
{
unset($this->_observers[$key]);
}
}

public function notifyObservers()
{
foreach($this->_observers as $observer)
{
if($observer instanceof Observer) $observer->update($this);
}
}
}

interface Observer
{
public function update($observer);
}

interface DisplayElement
{
public function display();
}

// -- 实例类定义
class NewsObserverable extends Observerable
{
private $_sports_news;
public function setSportsNews($data)
{
$this->_sports_news = $data;
$this->notifyObservers();
}

public function getSportsNews()
{
return $this->_sports_news;
}

private $_local_news;
public function setLocalNews($data)
{
$this->_local_news = $data;
$this->notifyObservers();
}

public function getLocalNews()
{
return $this->_local_news;
}
}

class SportsNews implements Observer,DisplayElement
{
private $_data = null;
public function update($observer)
{
if($this->_data != $observer->getSportsNews())
{
$this->_data = $observer->getSportsNews();
$this->display();
}
}

public function display()
{
echo $this->_data.date("Y-m-d H:i:s")."
";
}
}

class LocalNews implements Observer,DisplayElement
{
private $_data = null;
public function update($observer)
{
if($this->_data != $observer->getLocalNews())
{
$this->_data = $observer->getLocalNews();
$this->display();
}
}

public function display()
{
echo $this->_data.date("Y-m-d H:i:s")."
";
}
}

// -- 实例化 ---

$objObserver = new NewsObserverable();
$local = new LocalNews();
$sports = new SportsNews();

$objObserver->registerObserver($local);
$objObserver->registerObserver($sports);

$objObserver->setSportsNews("sports news 1 ");
$objObserver->setLocalNews("local news 1 ");
$objObserver->removeObserver($sports);
$objObserver->setLocalNews("local news 2 ");
$objObserver->setSportsNews("sports news 2 ");
$objObserver->removeObserver($local);
$objObserver->setLocalNews("local news 3 ");
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Modèles de conception couramment utilisés en PHP et leurs méthodes de mise en œuvre Modèles de conception couramment utilisés en PHP et leurs méthodes de mise en œuvre Jun 27, 2023 pm 01:08 PM

PHP est un langage de programmation largement utilisé et très populaire. PHP est une partie très importante des applications Web actuelles. Les modèles de conception jouent un rôle essentiel dans le développement d'applications PHP. Le modèle de conception est un modèle pour résoudre des problèmes qui peut être réutilisé dans différents environnements. Il nous aide à écrire un meilleur code et à le rendre plus fiable, maintenable et évolutif. Dans cet article, nous explorerons certains modèles de conception couramment utilisés en PHP et comment les implémenter. Modèle Singleton Le modèle Singleton est un modèle de création qui permet

Modèles de conception PHP : le chemin vers l'excellence du code Modèles de conception PHP : le chemin vers l'excellence du code Feb 21, 2024 pm 05:30 PM

Introduction Les modèles de conception PHP sont un ensemble de solutions éprouvées aux défis courants du développement de logiciels. En suivant ces modèles, les développeurs peuvent créer un code élégant, robuste et maintenable. Ils aident les développeurs à suivre les principes SOLID (responsabilité unique, ouvert-fermé, remplacement de Liskov, isolation d'interface et inversion de dépendance), améliorant ainsi la lisibilité, la maintenabilité et l'évolutivité du code. Types de modèles de conception Il existe de nombreux modèles de conception différents, chacun ayant son propre objectif et ses avantages. Voici quelques-uns des modèles de conception PHP les plus couramment utilisés : Modèle Singleton : garantit qu'une classe n'a qu'une seule instance et fournit un moyen d'accéder à cette instance de manière globale. Modèle d'usine : crée un objet sans spécifier sa classe exacte. Il permet aux développeurs de conditionnellement

Comment implémenter le modèle d'observateur à l'aide d'Event Manager dans le framework Phalcon Comment implémenter le modèle d'observateur à l'aide d'Event Manager dans le framework Phalcon Aug 02, 2023 pm 07:25 PM

Comment utiliser le gestionnaire d'événements (EventManager) pour implémenter le modèle d'observateur dans le framework Phalcon Introduction : Le gestionnaire d'événements (EventManager) est l'une des fonctions de base puissantes et flexibles du framework Phalcon. En utilisant des gestionnaires d'événements, vous pouvez facilement implémenter le modèle Observer pour obtenir un couplage lâche entre les objets de votre application. Cet article vous expliquera comment utiliser le gestionnaire d'événements dans le framework Phalcon pour implémenter le modèle d'observateur et fournira des exemples de code correspondants. première étape

Découvrir les secrets des modèles de conception PHP Découvrir les secrets des modèles de conception PHP Feb 21, 2024 pm 01:19 PM

1. Que sont les modèles de conception PHP ? Les modèles de conception PHP sont des modèles de code prédéfinis conçus pour résoudre les problèmes courants de développement de logiciels. Ils fournissent des solutions éprouvées qui améliorent la réutilisabilité, la maintenabilité et l’évolutivité du code. 2. Types de modèles de conception PHP Il existe de nombreux modèles de conception différents en PHP, et chaque modèle a son objectif spécifique. Les modèles les plus courants incluent : Modèle Singleton : garantit qu'il n'y a qu'une seule instance d'une classe. Modèle d'usine : crée des objets de différents types en fonction des données qui leur sont transmises. Mode stratégie : permet à un programme de modifier son comportement au moment de l'exécution. Modèle d'observateur : permet aux objets de s'abonner aux événements et d'être avertis lorsque des événements se produisent. 3. Exemple de mode Singleton classSingleInstance{private

Améliorer les compétences en programmation Java : maîtriser l'implémentation du modèle d'adaptateur et du modèle d'observateur Améliorer les compétences en programmation Java : maîtriser l'implémentation du modèle d'adaptateur et du modèle d'observateur Dec 23, 2023 am 11:52 AM

Améliorer les compétences en programmation Java : maîtriser l'implémentation du mode adaptateur et du mode observateur, avoir besoin d'exemples de code spécifiques Introduction : dans le développement de logiciels quotidiens, nous devons souvent faire face à des problèmes de compatibilité entre différentes classes, et devons également implémenter diverses interfaces utilisateur Surveillance et traitement des événements . Le modèle d’adaptateur et le modèle d’observateur sont deux modèles de conception couramment utilisés qui peuvent résoudre efficacement ces problèmes. Cet article présentera en détail l'implémentation du modèle d'adaptateur et du modèle d'observateur, et fournira des exemples de code Java spécifiques pour aider les lecteurs à mieux comprendre. un,

Quelles sont les méthodes d'implémentation du modèle d'observateur dans le framework Java ? Quelles sont les méthodes d'implémentation du modèle d'observateur dans le framework Java ? Jun 03, 2024 pm 05:05 PM

Le modèle d'observateur dans le framework Java définit le comportement via des interfaces et des classes abstraites (1) ; les classes Sujet et Observateur implémentent le comportement de gestion et de réponse (2) ; Dans l'exemple, Subject gère les observateurs et déclenche des événements (4), et ConcreteObserver répond aux événements (5).

Quels sont les modèles de conception en php ? Quels sont les modèles de conception en php ? Jul 25, 2023 am 09:39 AM

Les modèles de conception PHP incluent : 1. le mode Singleton, qui garantit qu'une classe n'a qu'un seul objet instancié ; 2. le mode Factory, qui encapsule le processus d'instanciation de l'objet dans une classe factory ; 3. le mode factory abstrait, qui est similaire à un mode usine ; Modèle d'usine pour créer des objets 4. Modèle d'observateur, réalisant des dépendances un à plusieurs entre les objets 5. Modèle d'adaptateur, convertissant l'interface d'une classe en interface d'une autre classe 6. Modèle de décorateur, ajouter dynamiquement quelques fonctions supplémentaires à ; un objet ; 7. Modèle d'itérateur ; 8. Modèle de stratégie ; 9. Modèle de méthode de modèle, etc.

Premiers pas avec PHP : modèle d'observateur Premiers pas avec PHP : modèle d'observateur May 20, 2023 am 08:21 AM

Les modèles de conception sont un concept largement utilisé dans le développement de logiciels modernes. Les modèles de conception sont des solutions courantes trouvées dans les systèmes logiciels qui sont testées et éprouvées pour aider les développeurs à créer plus efficacement des applications logicielles complexes. Le modèle d'observateur est l'un des modèles de conception les plus courants, et c'est également un concept important que les développeurs PHP doivent maîtriser. Dans cet article, nous présenterons le concept et l'implémentation du modèle Observer et démontrerons comment l'utiliser dans une application PHP. Quel est le modèle d’observateur ? Le modèle d'observateur est un

See all articles