3 04
使用SPL内置接口,实现观察者模式(Observer Pattern)
观察者模式,引用GoF的话来说:
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖与它的对象都得到通知并被自动更新。
在《Head First Design Patterns》中,举了一个现实生活中订阅报纸的例子来描述观察者模式:
报社,相当于观察者模式中的Subject,提供订阅/退订报纸。当新报纸出版时,递送(notify)新报纸到已订阅的用户。用户相当于Observer,
可以自由地订阅(attach)/退订(detach)报纸。当某一用户订阅/退订报纸时,不会影响其他用户。SPL(Standard PHP Library)从PHP 5.1.0新增了对观察者模式的支持,实际也就是新增了2个内置的接口SplObserver、SplSubject:
interface SplObserver
{
function update(SplSubject $subject);
}
interface SplSubject
{
function attach(SplObserver $observer);
function detach(SplObserver $observer);
function notify();
}
查看附件实例
observer demo
Leave a Reply
You must be logged in to post a comment.

Recent Comments