/** * 观察对象 * Undocumented class */ class User implements SplSubject { public $loginCnt; private $observers; public function __construct() { $this->obs ...
分类:
Web程序 时间:
2020-07-23 01:49:57
阅读次数:
93
PHP设计模式-观察者一个对象状态发生改变后,会影响到其他几个对象的改变,这时候可以用观察者模式。一个对象通过添加一个attach方法允许观察者注册自己,使本身变得可观察。当被观察的对象更改时,它会将消息发送到已注册的观察者。观察者使用该信息执行的操作与被观察的对象..
分类:
Web程序 时间:
2016-07-13 12:03:19
阅读次数:
170
PHP版本 <?php /** * 观察者模式 * 观察者模式能够便利的创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定性功能。 * * 为软件添加由某个动作或状态变化激活的,但是松散耦合的新功能时,应当创建基于观察者模式的对象。 * * SPL:Standard PHP Library
分类:
Web程序 时间:
2016-02-23 18:28:00
阅读次数:
191
场景:要写一个订单系统,买了东西后要给用户发送email,改变订单状态,等等。 通常是这么写的: class?Order{
?public?function?buy(){
?????echo?‘buy!‘;
?????$email?=?new?Email();
???...
分类:
Web程序 时间:
2015-11-17 19:34:08
阅读次数:
174
声明:本系列博客参考资料《大话设计模式》,作者程杰。
观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
UML类图:
重...
分类:
Web程序 时间:
2015-06-03 23:33:38
阅读次数:
156
<?php
/**
1. 概述
又称为发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)模式、源-监听(Source-Listener)模式、或从属者(Dependents)模式
2. 解决的问题
将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样...
分类:
Web程序 时间:
2015-02-12 18:28:19
阅读次数:
132
题记==============================================================================本php设计模式专辑来源于博客(jymoz.com),现在已经访问不了了,这一系列文章是我找了很久才找到完整的,感谢作者jymoz的辛苦付出...
分类:
Web程序 时间:
2015-01-25 15:12:31
阅读次数:
238
loginNum = rand(1,10); $this->hobby = $hobby; $this->observers = new SplObjectStorage(); } public function attach(SplObserver $obs...
分类:
Web程序 时间:
2015-01-11 20:21:41
阅读次数:
283