<?php
/**
* 定义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
* 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。
*/
interface observe{
public function update();
public function delete();
}
class observer1 implements observe{
public function update(){
echo "update 1";
}
public function delete(){
echo "delete 1";
}
}
class observer2 implements observe{
public function update(){
echo "update 2";
}
public function delete(){
echo "delete 2";
}
}
//当模型调用update时,触发更新
//当模型调用delete时,触发删除
class EventModel {
private $observe;
public function __construct(observe $observeObj)
{
$this->observe = $observeObj;
}
public function update(){
$this->observe->update();
}
public function delete(){
$this->observe->delete();
}
}
$model = new EventModel(new observer1);
$model->update();
$model->delete();