首页 > 作文

PHP观察者模式实例分析【对比JS观察者模式】

更新时间:2023-04-07 08:33:54 阅读: 评论:0

本文实例讲述了php观察者模式。分享给大家供大家参考,具体如下:

1.用js实现观察者模式

<!doctype html><html><head>    <title></title>    <style type="text/css">    div{width: 100px;height: 100px;border: 1px #999 solid;margin-bottom: 5px;}    </style>&端午节儿歌lt;/head><body><!--我们让div对象观察lect的变化,lecte变化就会通知这个2个对象,并引起这2个对象的变化,实现观察者模式。 --> <h1>用观察者模式切换页面风格</h1> <lect>     <option value="male">男式风格</option>     <option value="female">女士风格</option> </lect> <button onclick="t1()">观察学习区</button> <button onclick="t2()">不观察学习区</button> <div id="content">我是内容</div> <div id="ad">我是广告</div> <div过年好 电影 id="study">学习</div></body><script type="text/javascript">    var l = document.getelementsbytagname('lect')[0];    l.obrvers = {};    l.attach = function(key,obj){        this.obrvers[key] = obj;    }    l.detach = function(key){        delete this.obrvers[key];    }    l.onchange = l.notify = function(){        for(var key in this.obrvers){            this.obrvers[key].update(this);        }    }    //客户端    varannoy名词 content = document.getelementbyid('content');    var ad = document.getelementbyid('ad');    content.update = function(ob){        if (ob.value == 'male') {            this.style.backgroundcolor = 'gray';        }el if(ob.value == 'female'){            this.style.backgroundcolor = 'pink';        }    }    ad.update = function(ob){        if (ob.value == 'male') {            this.innerhtml = '汽车';        }el if(ob.value == 'female'){            this.innerhtml = '减肥';        }    }    //让content观察lect的变化    l.attach('content',content);    l.attach('ad',ad);    //新增监听study区    var study = document.getelementbyid('study');    study.update = function(ob){        if (ob.value == 'male') {            this.innerhtml = '学习计算机';        }e二项分布的方差l if(ob.value == 'female'){            this.innerhtml = '学习美容';        }    }    l.attach('study',study);    function t1(){        l.attach('study',study);    }    function t2(){        l.detach('study');    }</script></html>

2.用php实现观察模式

<?php//php实现观察者//php5中提供观察者obrver和被观察者subject的接口class ur implements splsubject{    public $lognum;    public $hobby;    protected $obrvers = null;    public function __construct($hobby)    {        $this->lognum = rand(1,10);        $this->hobby = $hobby;        $this->obrvers = new splobjectstorage();    }    pu专升本报名学校blic function login()    {        //操作ssion等        $this->notify();    }    public function attach(splobrver $obrver)    {        $this->obrvers->attach($obrver);    }    public function detach(splobrver $obrver)    {        $this->obrvers->detach($obrver);    }    public function notify()    {        $this->obrvers->rewind();        while ($this->obrvers->valid()) {            $obrver = $this->obrvers->current();            $obrver->update($this);            $this->obrvers->next();        }    }}//用户安全登录模块class safe implements splobrver{    public function update(splsubject $subject)    {        if ($subject->lognum < 3) {            echo '这是第' . $subject->lognum . '次安全登录<br>';        }el{            echo '这是第' . $subject->lognum . '次登录,异常<br>';        }    }}//广告模块class ad implements splobrver{    public function update(splsubject $subject)    {        if ($subject->hobby == 'sports') {            echo '英超开始啦<br>';        }el{            echo '好好学习<br>';        }    }}//实施观察// $ur = new ur('sports');$ur = new ur('study');$ur->attach(new safe());$ur->attach(new ad());$ur->login();//登录

更多关于php相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《php数组(array)操作技巧大全》、《php基本语法入门教程》、《php运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家php程序设计有所帮助。

本文发布于:2023-04-07 08:33:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/661b3cfb5b5f319a27613ccadde3ca92.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP观察者模式实例分析【对比JS观察者模式】.doc

本文 PDF 下载地址:PHP观察者模式实例分析【对比JS观察者模式】.pdf

标签:观察者   模式   这是   我是
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
  • PHP观察者模式实例分析【对比JS观察者模式】
    本文实例讲述了php观察者模式。分享给大家供大家参考,具体如下:1.用js实现观察者模式