观察者模式
复制代码代码如下所示:
界面主题
{
公共函数附加($观察员);
公共函数分离($观察者);
公共函数(通知);通知观察者以满足条件
公共功能subjectstate($); / /观察条件
}
班老板实行科目
{
公共_action美元;
私人_observer美元;
公共职能附加(观察员)
{
美元-> _observer { } = $观测器;
}
公共功能分离($观察员)
{
observerkey美元= array_search($观测器,美元-> _observer);
如果(observerkey美元!= false)
{
unset(美元-> _observer { $ observerkey });
}
}
公共函数通知()
{
foreach(美元-> _observer美元价值)
{
$值>更新();
}
}
公共功能subjectstate($)
{
美元-> _action = $;
}
}
摘要课堂观察
{
保护_username美元;
保护_sub美元;
公共功能__construct($name,$分)
{
美元-> _username = $名称;
美元-> _sub = $子;
}
公共抽象功能(更新);
}
类stockobserver延伸观测器
{
公共功能__construct($name,$分)
{
家长::__construct($name,$分);
}
公共功能更新()
{
echo $这-> _sub ->美元-> _username _action。你跑得很快…;
}
}
$胡汉三=新(老板); / /观察
gongshil美元=新stockobserver(三毛,胡汉三美元); / /初始化观测器
胡汉三美元->附加($ gongshil); / /添加一个观察者
胡汉三美元->附加($ gongshil); / /添加相同的观察
胡汉三美元->分离($ gongshil); / /在中扮演一个观察者
胡汉三美元-> subjectstate(警察); / /符合条件
($胡汉三->通知); / /所有有效的观察者

它可以粗略地理解为一个类(我们称之为观察者),它继承了观察者容器的借口。
此接口中的方法是:添加观察者、踢出观察者、提醒观察者和观察条件。
添加观察者相当于将一些类注册到这个容器中。当然,这些类的前提是需要相应的观察者对信息作出反应。
观察者的容器确定所有容器中的注册观测者是否应该接受不同的观测条件参数。
一旦提醒满足,容器中的所有观察者都被提醒调用相应的方法,并实现相应的观察者实例中的更改。
让我们暂时理解它!