? ?原文地址:PHP设计模式之观察者模式
功能描述:观察者设计模式能够更便利地创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定功能性。
也就是说,利用这种模式可以方便地创建一个对象(观察者),其可以用来“监视”另一个对象(被观察者)的状态。这样,就可以在不必完全重构某些核心对象(可以
理解成被观察者)的情况下,向现有的应用层序填加额外的功能。
这意味着,当一个对象发出一个action时,需要进行另一个未知的action时,利用观察者设计模式更为
合理。
应用:用户注册(下面以此为例),插件系统等。
标准
PHP类库(StandardPHPLibrary,SPL),内部已经实现了两个
接口。
被观察者接口:
?
1
2
3
4
5
6
class="php plain" style="border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; float: none !important; height: auto !important; line-height: 1.1em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; vertical-align: baseline !important; width: auto !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;">SplSubject {
????
????
abstract
public
void attach ( SplObserver
$observer
)
????
abstract
public
void detach ( SplObserver
$observer
)
????
abstract
public
void notify ( void )
}
观察者接口:
?
1
2
3
4
SplObserver {
????
????
abstract
public
void update ( SplSubject
$subject
)
}
?
?
全文地址:PHP设计模式之观察者模式
?