php 观察者模式

 

 

观察者模式:
        
    
    abstruct class EventGenerate()
    {
        
        private $observers = [];
        public function addObserver($observer)
        {
            $this->observers[] = $observer;
        }
        public function notify()
        {
            foreach($observers as $obs)
            {
                $obs->update();
            }
        }
    }
    
    
    Interface  Observer 
    {
        public funtion update();
    }

    
    
    class Event extends EventGenerate
    {
        public function trigger()
        {
            $this->notify();
        }
    }

    
    class myobs001 implements Observer
    {
        public function update()
        {
            echo "update myobs001";
        }
    }
    
    $ev = new Event();
    
    $ev->addObserver(new myobs001 );

 

 

当一个对象状态发生改变时候,依赖她的对象全部都会接到通知 , 并自动更新。

耦合,入侵   ->  非耦合 非入侵

 

posted @ 2017-08-27 21:47  silvercell  阅读(516)  评论(0)    收藏  举报