设计模式-观察者模式

观察者模式,软件设计中常用设计模式之一

使用场景多用于一个对象的一个行为会影响多个对象的场景,例如某项操作需要上报多个日志等

使用php实现:

<?php

//观察者接口

interfaceob{

public functionupdate();

}

//观察者1

classobOneimplementsob{

public functionupdate()

{

echo"ob1\r\n";

}

}

//观察者2

classobTwoimplementsob{

public functionupdate()

{

echo"ob2\r\n";

}

}

//被观察者

classbeOb

{

protected$obs;

protected functionaddOb(ob$ob){

$this->obs[]=$ob;

}

public functionact(){

echo"正常逻辑\r\n";

$this->addOb(newobOne());

$this->addOb(newobTwo());

$this->notify();

}

protected functionnotify(){

if(empty($this->obs)){

return true;

}

foreach($this->obsas$ob){

$ob->update();

}

return true;

}

}

$beOb=newbeOb();

$beOb->act();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为 Codeagles 原创文章,可以随意转载,但必须在明确位置注明出处!!! 观察者模式 什么是观...
    Codeagles阅读 507评论 0 2
  • 一、观察者模式概述 +观察者模式又叫做发布-订阅模式观察者模式定义了一种一对多的依赖关系,让多个观察者对象同事监听...
    Mitchell阅读 254评论 0 0
  • 设计模式——观察者模式 很好理解的例子 例子:李斯监控韩非子衣食住行 一个抽象接口:被观察者接口 一个抽象接口:抽...
    书笔年华阅读 367评论 0 0
  • 观察者模式中通常有两个基本的概念主题:观察者和被观察者。当被观察者状态发生改变时,需要通知相应的观察者,当然,每个...
    时待吾阅读 1,105评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,259评论 19 139