观察者模式
复制代码 代码如下:
interface Subject
{
public function Attach($Observer); //添加观察者
public function Detach($Observer); //踢出观察者
public function Notify(); //满足条件时通知观察者
public function SubjectState($Subject); //观察条件
}
class Boss Implements Subject
{
public $_action;
private $_Observer;
public function Attach($Observer)
{
$this->_Observer[] = $Observer;
}
public function Detach($Observer)
{
$ObserverKey = array_search($Observer, $this->_Observer);
if($ObserverKey !== false)
{
unset($this->_Observer[$ObserverKey]);
}
}
public function Notify()
{
foreach($this->_Observer as $value )
{
$value->Update();
}
}
public function SubjectState($Subject)
{
$this->_action = $Subject;
}
}
abstract class Observer
{
protected $_UserName;
protected $_Sub;
public function __construct($Name,$Sub)
{
$this->_UserName = $Name;
$this->_Sub = $Sub;
}
public abstract function Update(); //接收通过方法
}
class StockObserver extends Observer
{
public function __construct($name,$sub)
{
parent::__construct($name,$sub);
}
public function Update()
{
echo $this->_Sub->_action.$this->_UserName." 你赶快跑...";
}
}
$huhansan = new Boss(); //被观察者
$gongshil = new StockObserver("三毛",$huhansan); //初始化观察者
$huhansan->Attach($gongshil); //添加一个观察者
$huhansan->Attach($gongshil); //添加一个相同的观察者
$huhansan->Detach($gongshil); //踢出基中一个观察者
$huhansan->SubjectState("警察来了"); //达到满足的条件
$huhansan->Notify(); //通过所有有效的观察者
可以粗略的理解为,一个类(我们称之为被观察者),这个类继承了一个被观察者容器的借口
该接口中的方法有:添加观察者,踢出观察者,提醒观察者,和观察条件
添加观察者即相当于把一些类注册到这个容器之中,当然这些类的前提是需要有一个相应被观察者反应信息的方法,
被观察者容器通过接受不同的观察条件参数来判断是否需要提醒所有本容器中的已经注册过的观察者是否相应
一旦满足提醒条件,提醒容器内所有观察者让其调用相应方法并且实现对应观察者实例的变化
暂且理解到此!
相关推荐:
SEO查:如何通过精准优化让网站流量飞速增长,吉林推广营销怎么样
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
ChatGPT服务部分恢复:人工智能助力全新体验,ai对象菜单
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
如何识别文章是否由AI写作:技巧与方法解析
seo管理系统是什么,seo网站管理 ,过度圆ai
用AI修改文章,提升写作效率与质量的新时代
ChatGPT故障:科技背后的秘密与应对策略,华为什么手机带ai功能
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
SEO中的别类词:提升排名,轻松超越竞争对手,ai插画生肖
SEO指:如何通过精准优化提高网站流量和转化率,无锡论坛营销推广要多久
打破创作边界,无限可能无限制生成文章的AI
智能AI写作生成:如何借助人工智能提升创作效率与质量
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
SEO利用:让你的网站快速登顶,获取更多流量与客户!,延边小程序推广平台网站
seo类文章是什么,seo技术文章 ,ai3.5-ai聊天
AI免费工具:提升效率与创意的秘密武器
云推SEO:让您的网站在激烈竞争中脱颖而出,网站优化公司欢迎来电
优化,让生活与工作更高效-从个人到企业的全面升级,广州百度seo费用
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
GPT在什么时候被人熟知的?从技术突破到广泛应用的背后故事,ai商业新思维ai课程
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai
在线AI生成文章:智能写作的未来趋势
AI智能工具的无限可能:未来已来,你准备好了吗?
企业关键字-助力企业成功的隐形动力,闽侯县企业网站建设
AI网站开发与代码创新:引领未来数字化变革的关键,ai ay规则
优化*:打造更加高效、创新的娱乐体验,石排网站建设制作多少钱
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
seo要懂些什么软件,seo常用软件 ,ai写作网站网址大全
ChatGPT桌面应用安装了,不能用?解决方案全攻略,让你轻松畅享AI助手!,绫波丽ai智能
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
SEO对策:提升网站排名与流量的必备策略,SEO入门相机平价学生
OpenAI银行卡扣款的公司是哪家?揭秘背后的支付流程与安全保障,AI素描相片
ChatGPT翻译打不开?解决方法!,ai爱股票
AI免费生成:释放创造力的秘密武器
未来写作新方式原创AI文章的无限可能
seo诊断什么意思,seo诊断a5 ,约瑟夫ai
SEO优化大全:让你的网站排名轻松破局,精准引流更高效!,274357524ai
seo链接锚是什么,什么是锚链接,如何设置锚链接 ,保山智能AI
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
AI文章概括缩写:让内容高效获取的智能工具,ai 处理文件
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
AI助手推进:智能化时代的企业革命,ai改变图片颜色