文档章节

php实现观察者模式

山鹰sniper
 山鹰sniper
发布于 2014/09/18 22:33
字数 160
阅读 134
收藏 5
<meta charset='utf-8' />
<title>观察者模式</title>
<?php
    class Tongzhi implements SPLSubject
    {
        protected $subs = array();
        public $username = '我是被观察者';

        public function __construct(){
        }
        
        public function attach(SPLObserver $sub){
            $this->subs[] = $sub;
        }

        public function detach(SPLObserver $sub){
            $keys = array_keys($this->subs,$sub);
            $key = $keys[0];
            unset($this->subs[$key]);
        }

        public function notify(){
            foreach ($this->subs as $value) 
            {
                $value->update($this);
            }
        }
    }

    class Obs1 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.',我是观察者1<br />';
        }
    }

    class Obs2 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.',我是观察者2<br />';
        }
    }

    class Obs3 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.',我是观察者3<br />';
        }
    }

    $tz = new Tongzhi;
    $tz->attach(new Obs1);
    $tz->attach(new Obs2);
    $tz->detach(new Obs2);
    $tz->attach(new Obs3);
    $tz->notify();
?>



© 著作权归作者所有

上一篇: redis小結
山鹰sniper
粉丝 4
博文 84
码字总数 28663
作品 0
南开
程序员
私信 提问
《PHP设计模式大全》系列分享专栏

《PHP设计模式大全》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201739.html 文章 php设计模式介绍之编程惯用法第1/3页 php设计模式介绍之值对象模式第1/5页...

kaixin_code
2018/11/06
185
0
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
286
2
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
2018/06/24
0
0
php各种设计模式简单实践思考

前言 我一直觉得什么框架,版本,甚至语言对于一个coder来说真的不算什么,掌握一个特别高大上的一个框架或者是一个新的,少众的语言真的不算什么,因为你可以,我要花时间也可以,大家都是这...

michaelgbw
2016/06/13
0
0
编程中的那些经典套路——设计模式汇总

在正式阅读前,我先谈谈我们该用什么姿势和心态学习设计模式: 如果你还没有过多的编程经验(泛指半年以下),我建议你把它当做小说来看,能看懂多少是多少,因为半年以下经验的程序员用到设...

gzchen
2018/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

云栖干货回顾 | 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读

阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务ACID。AnalyticDB PG通过行存...

大涛学弟
12分钟前
3
0
TL138/1808/6748-EasyEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EasyEVM是广州创龙基于SOM-TL138/SOM-TL1808/SOM-TL6748核心板开发的一款开发板。由于SOM-TL138/SOM-TL1808/SOM-TL6748核心板管脚兼容,所以此三个核心板共用同一个底板。开...

Tronlong创龙
16分钟前
2
0
开普勒平台开源版

https://github.com/kplcloud/kplcloud

perofu
19分钟前
3
0
昨天,这项阿里技术再获世界级科技大奖!

第六届世界互联网大会来了!千年水乡古镇乌镇又一次吸引了全世界的目光。 昨天,阿里云自研数据库POLARDB 在会上当选世界互联网领先科技成果。POLARDB解决了企业在云时代的数据库难题,帮助企...

阿里云官方博客
19分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部