觀察者模式

它是一種事件系統,意味着某個類可以觀察另一個類的狀態,當被觀察的類的狀態發生改變時,觀察者可以收到通知並且做出相應的動作

優點:觀察者模式提供了避免組件之間緊密耦合的另一種方法

代碼:

<?php

//觀察者模式涉及到兩個類

//男人類 和 女朋友類

//男人類對象小明   ,小明非常花心,有兩個女朋友小花和小麗,給兩個女朋友都說如果我花錢就凍結銀行卡

class Man{
    protected $observers = array();
    function addobserver($observer)
    {
        $this->observers[] = $observer;
    }

    function buy()
    {
        foreach ($this->observers as $girlfirend)
        {
            $girlfirend->dongjie();
        }
    }

    function delobserver($observer)
    {
        $key = array_search($observer,$this->observers);
        array_splice($this->observers,$key,1);
    }
}

class GirlFriend{
    function dongjie()
    {
        echo "凍結小明的銀行卡\n";
    }
}

$xiaohua = new GirlFriend();
$xiaoli = new GirlFriend();

$xiaoming = new Man();
$xiaoming->addobserver($xiaohua);
$xiaoming->addobserver($xiaoli);

//$xiaoming->delobserver($xiaoli);

$xiaoming->buy();



發佈了65 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章