观察者模式

观察者模式

<?php

    //定义观察者调用接口

    class transfer{

        protected $_observers = array();

        

        //注册对象

        public function register($sub){

            $this->_observers[] = $sub;    

        }

        

        //外部统一调用

        public function trigger(){

            if(!empty($this->_observers)){

                foreach($this->_observers as $observer){

                    $observer->update();

                }    

            }

        }

    }

    

    //观察者接口

    interface obserable{

        public function update();

    }

    

    //实现观察者

    class listen implements obserable{

        public function update(){

            echo 'now first time you need to do listen<br/>';

        }

    }

    

    class read implements obserable{

        public function update(){

            echo 'now first time you need to read<br/>';

        }

    }

    

    class speak implements obserable{

        public function update(){

            echo 'now first time you need to speak<br/>';

        }

    }

    

    class write implements obserable{

        public function update(){

            echo 'now first time you need to write<br/>';

        }

    }

    

    $transfer = new transfer();

    $transfer->register(new listen());

    $transfer->register(new read());

    $transfer->register(new speak());

    $transfer->register(new write());

    $transfer->trigger();

    

    

    

    

    

    

    

    

    

    

    

    

    

 

你可能感兴趣的:(观察者模式)