您的位置:首页 > 编程语言 > PHP开发

PHP设计模式-观察者模式

2013-01-31 17:58 651 查看
观察者模式(Observer Pattern)

观察者模式属于行为模式,是定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。它完美的将观察者对象和被观察者对象分离。可以在独立的对象(主体)中维护一个对主体感兴趣的依赖项(观察器)列表。让所有观察器各自实现公共的 Observer 接口,以取消主体和依赖性对象之间的直接依赖关系。

<?php

interface IObserver {
function onChanged($sender, $args);
}
interface IObservable {
function addObserver($observer);
}
class UserList implements IObservable {
private $_observers = array ();
public function addCustomer($name) {
foreach ( $this->_observers as $obs )
$obs->onChanged ( $this, $name );
}
public function addObserver($observer) {
$this->_observers [] = $observer;
}
}
class UserListLogger implements IObserver {
public function onChanged($sender, $args) {
echo ("'$args' added to user list\n");
}
}
$ul = new UserList ();
$ul->addObserver ( new UserListLogger () );
$ul->addCustomer ( "Jack" );

?>


观察者模式的优缺点:

优点:

1. 支持松耦合,减少依赖性

2. 观察器可观察

缺点:

1. 性能降低

2. 内存泄漏

3. 隐藏的依赖项

4. 测试/调试困难
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: