码迷,mamicode.com
首页 > 其他好文 > 详细

Observer(观察者模式)

时间:2017-07-04 14:50:00      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:stl   观察者   发送信息   注册   lis   log   use   server   name   

某个对象可以被设置为是可观察的,只要通过某种方式允许其他对象注册为观察者。每当被观察的对象改变时,会发送信息给观察者。
<?php
 
interface Observer {
  function onChanged($sender, $args);
}
 
interface Observable {
  function addObserver($observer);
}
 
class CustomerList implements Observable {
  private $_observers = array();
 
  public function addCustomer($name) {
    foreach($this->_observers as $obs)
      $obs->onChanged($this, $name);
  }
 
  public function addObserver($observer) {
    $this->_observers []= $observer;
  }
}
 
class CustomerListLogger implements Observer {
  public function onChanged($sender, $args) {
    echo( "‘$args‘ Customer has been added to the list \n" );
  }
}
 
$ul = new UserList();
$ul->addObserver( new CustomerListLogger() );
$ul->addCustomer( "Jack" );

  

Observer(观察者模式)

标签:stl   观察者   发送信息   注册   lis   log   use   server   name   

原文地址:http://www.cnblogs.com/Czc963239044/p/7116262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!