观察者模式

jianbing123 2019-12-24 原文

观察者模式

观察者模式用于监听关联类的行为,如果有所异常并作出回应;

<?php
    //观察者模式:一个类的行为(方法)被另外一个类的行为(方法)所观察甚至限制

    //男人类:大丈夫有两个行为,加入女朋友监察和自行购物行为
    class Man{
        private $observer=array();

        //加入观察者对象
        public function addObserver($observer)
        {
            $this->observer[] = $observer;
        }

        public function buy()
        {
            foreach($this->observer as $observer){
                //在男人购买方法中加入女朋友对象来观察监听男人的消费
                $observer->dongjie();
            }
        }

        //移除观察者
        public function delObserver($observer)
        {
            $key = array_search($observer,$this->observer);

            array_splice($this->observer,$key,1);
        }
    }

    //女朋友类有个自发行为:冻结男朋友的消费卡的行为
    class GirlFriend{
        private $name;
        function __construct($name)
        {
            $this->name = $name;
        }

        public function dongjie()
        {
            echo $this->name."说道想偷偷花钱买东西,没门!<br />";
        }
    }


    $xiaoli = new GirlFriend('小丽');
    //var_dump($xiaoli);die();
    $xiaohua = new GirlFriend('小花');
    $xiaoming = new Man();
    $xiaoming->addObserver($xiaoli);
    $xiaoming->addObserver($xiaohua);
    $xiaoming->delObserver($xiaohua);
    $xiaoming->buy();

code.php

发表于
2019-12-24 22:47 
small-river 
阅读(
评论(

编辑

收藏

 

版权声明:本文为jianbing123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jianbing123/p/12094028.html

观察者模式的更多相关文章

  1. 观察者模式 – mingmingcome

    观察者模式 2019年3月25日11:01:22 观察者模式( observer pattern) 写在前面的 […]...

  2. C++屌屌的观察者模式-同步回调和异步回调

    目录 一、概述 1、同步观察者 2、异步观察者 二、效果展示 三、同步观察者 四、异步观察者 五、相关文章 原 […]...

  3. Spring之事件监听(观察者模型)

    目录 Spring事件监听 一、事件监听案例 1.事件类 2.事件监听类 3.事件发布者 4.配置文件中注册 […]...

  4. 观察者模式 – 水滴四川

    观察者模式 模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做 […]...

  5. 观察者模式,发布订阅和事件驱动编程

    观察者模式三要素:  目标–>猫     观察者—>老鼠、人      事 […]...

  6. 观察者模式

    定义 对象之间定义一对多的依赖,当一这个对象状态发生变化,它所依赖的对象都能得到变化后的状态值。(简单的来说, […]...

  7. PHP观察者模式与Yii2.0事件

    PHP观察者模式与Yii2.0事件 1、先看PHP观察者模式的实现: 想要使用事件、必须实现事件的基类、统一的 […]...

  8. 观察者模式

    观察者模式 观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(Vi […]...

随机推荐

  1. mysql———–limit优化

    PHP中分页肯定会使用到MySQL的limit,大部分对类似”select * from titl […]...

  2. 正定矩阵和半正定矩阵

    在众多的机器学习模型中,线性代数的身影无处不在,当然,我们也会时常碰到线性代数中的正定矩阵和半正定矩阵。例如, […]...

  3. 将文字转化为图片(竖排)

    作用:将文字转化为图片保存 #载入必要的模块 import pygame import os from PIL […]...

  4. javascript深入理解-从作用域链理解闭包

    一、概要 红宝书(P178)对于闭包的定义:闭包就是有权访问另外一个函数作用域中变量的函数。 MDN,对于闭包 […]...

  5. Python正则表达式-换行的匹配

    找到了之前参考的博文,用来记录一下https://www.cnblogs.com/baxianhua/p/85 […]...

  6. java单点登录系统CAS的简单使用

    http://blog.csdn.net/yunye114105/article/details/799704 […]...

  7. 爬虫入门到放弃系列05:从程序模块设计到代理IP池

    前言 上篇文章吧啦吧啦讲了一些有的没的,现在还是回到主题写点技术相关的。本篇文章作为基础爬虫知识的最后一篇,将 […]...

  8. 史上最全前端面试题(含答案)-B篇

    面试有几点需要注意面试题目: 根据你的等级和职位变化,入门级到专家级:范围↑、深度↑、方向↑。 题目类型: 技 […]...

展开目录

目录导航