标签:io ar for sp cti on c new r
<meta charset=‘utf-8‘ />
<title>观察者模式</title>
<?php
class Tongzhi implements SPLSubject
{
protected $subs = array();
public $username = ‘我是被观察者‘;
public function __construct(){
}
public function attach(SPLObserver $sub){
$this->subs[] = $sub;
}
public function detach(SPLObserver $sub){
$keys = array_keys($this->subs,$sub);
$key = $keys[0];
unset($this->subs[$key]);
}
public function notify(){
foreach ($this->subs as $value)
{
$value->update($this);
}
}
}
class Obs1 implements SPLObserver
{
public function update(SPLSubject $tz){
echo $tz->username.‘,我是观察者1<br />‘;
}
}
class Obs2 implements SPLObserver
{
public function update(SPLSubject $tz){
echo $tz->username.‘,我是观察者2<br />‘;
}
}
class Obs3 implements SPLObserver
{
public function update(SPLSubject $tz){
echo $tz->username.‘,我是观察者3<br />‘;
}
}
$tz = new Tongzhi;
$tz->attach(new Obs1);
$tz->attach(new Obs2);
$tz->detach(new Obs2);
$tz->attach(new Obs3);
$tz->notify();
?>
标签:io ar for sp cti on c new r
原文地址:http://my.oschina.net/u/946060/blog/315828