“观察者模式”学习

Solution, 闲言碎语 Add comments |

使用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.


Powered byWordPress 2.6.2 | Theme by N.Design Studio | Processed in 0.27 秒 苏ICP备07500719号

Entries RSS Comments RSS 登录
Links to Page