interface IObserver{
function changed($send, $args);
}
interface IObservable{
function addObserver($name);
}
class UserListLogger implements IObserver{
public function onchanged($obj, $args){
//observer do something here
}
}
class UserList implements IObserable{
public $_ob = [];
public function addObserver($ob){
$this->ob[] = $ob;
}
public function addCustomer($args){
foreach($this->ob as $obj){
$obj->onchanged($this, $args);
}
}
}
注:以上来源于https://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/index.html,