<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/27
* Time: 23:20
*/
abstract class EventGenerator{
private $observers = array();
function addObserver(Observer $observer){
$this->observers[] = $observer;
}
function notify(){
foreach($this->observers as $observer){
$observer->update();
}
}
}
interface Observer{
function update($event_info = NULL);
}
class Observer1 implements Observer{
function update($event_info = NULL)
{
// TODO: Implement update() method.
echo '观察者1<br>';
}
}
class Observer2 implements Observer{
function update($event_info = NULL)
{
// TODO: Implement update() method.
echo "观察者2<br>";
}
}
class Event extends EventGenerator{
function trigger(){
echo "Event<br>\n";
$this->notify();
逻辑1
//echo "逻辑1<br>";
逻辑3
//echo "逻辑2<br>";
逻辑3
//echo "逻辑3<br>";
}
}
$event = new Event();
$event->addObserver(new Observer1());
$event->addObserver(new Observer2());
$event->trigger();