PHP设计模式三(观察者设计模式)

标签:
php设计模式观察者it |
分类: php那些事 |
观察者模式为您提供了避免组件之间紧密耦合的另一种方法。该模式非常简单:一个对象
通过添加一个方法(该方法允许另一个对象,即观察者 注册自己)使本身变得可观察。当可观
察的对象更改时,它会将消息发送到已注册的观察者。这些观察者使用该信息执行的操作与可观
察的对象无关。结果是对象可以相互对话,而不必了解原因。
<?php
interface IObserver
{
function onChanged($send,$name);
}
interface Observerable
{
function addObserverable($observer);
}
class UserList implements Observerable
{
private $_observer = array();
public function addObserverable($observer)
{
$this->_observer[] = $observer;
}
public function addUser($name)
{
foreach($this->_observer as $obj)
$obj->onChanged($this,$name);
}
}
class UserListLog implements IObserver
{
public function onChanged($send,$name)
{
echo "user :{$name} is add to log ...<br
/>";
}
}
$o = new UserList();
$o->addObserverable(new UserListLog());
$o->addUser("braveryhui");
$o->addUser("braveryhui1");