文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP的观察者模式

PHP的观察者模式

时间:2010-04-24  来源:cclang2009

观察者模式常用于日志、记录跟踪等场景,例如我们要添加一个用户,添加完毕后需要执行一系列的功能,例如将这个用户写入到日志文件里,在将用户信息显示出来,我们共需要3个类:1、User类,包含add_user方法

2、Log类, 包含onChanged方法

3、View类,包含onChanged方法

观察者模式的核心原理就是:将Log及View对象传递给User类中的一个数组里,然后当User类的add_user方法执行成功后,迭代这个数组,分别使用两个对象的onChanged方法。

观察者模式的好处在于使各个组件之间不必过度耦合。

下面是一个观察者模式的例子:

<?php

    interface IObserver
    {
        public function onChanged( $sender, $name );
    }

    interface IObservable
    {
        public function addCustomer( $name );
    }

    class UserList implements IObservable
    {
        private $_observers = array();

        public function addCustomer( $name )
        {
            foreach ( $this->_observers AS $obs )
            {
                $obs->onChanged( $this, $name);
            }
        }

        public function addObserver( $observer )
        {
            $this->_observers []= $observer;
        }
    }

    class UserListLogger implements IObserver
    {
        public function onChanged( $sender, $args )
        {
            echo "$args added to user list";
        }
    }

    $ul = new UserList();
    $ul->addObserver( new UserListLogger() );
    $ul->addCustomer( "Jack" );

?>


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载