它是一种事件系统,意味着某个类可以观察另一个类的状态,当被观察的类的状态发生改变时,观察者可以收到通知并且做出相应的动作
优点:观察者模式提供了避免组件之间紧密耦合的另一种方法
代码:
<?php
//观察者模式涉及到两个类
//男人类 和 女朋友类
//男人类对象小明 ,小明非常花心,有两个女朋友小花和小丽,给两个女朋友都说如果我花钱就冻结银行卡
class Man{
protected $observers = array();
function addobserver($observer)
{
$this->observers[] = $observer;
}
function buy()
{
foreach ($this->observers as $girlfirend)
{
$girlfirend->dongjie();
}
}
function delobserver($observer)
{
$key = array_search($observer,$this->observers);
array_splice($this->observers,$key,1);
}
}
class GirlFriend{
function dongjie()
{
echo "冻结小明的银行卡\n";
}
}
$xiaohua = new GirlFriend();
$xiaoli = new GirlFriend();
$xiaoming = new Man();
$xiaoming->addobserver($xiaohua);
$xiaoming->addobserver($xiaoli);
//$xiaoming->delobserver($xiaoli);
$xiaoming->buy();
2342

被折叠的 条评论
为什么被折叠?



