PHP设计模式之观察者模式

PHP设计模式之观察者模式

PHP 设计模式之观察者模式

观察者模式:

将观察者逻辑写到业务逻辑里面去,

适用业务场景举例:

注册用户之后,①通知用户欢迎使用此系统②给推荐人积分③写入日志程序。

 

适用场景及注意事项:

①一个业务逻辑的对象会引起其他一个或多个业务逻辑,能用于对象之间的通信

②依赖性弱,被观察者里面添加方法用来关联其他对象,关联是在对象外面执行,类的独立性强。

③各个观察者类最好继承一个接口,因为观察者的方法名可能存在于被观察者的方法中。

 

<?php
interface IObserver
{
  function onChanged( $sender, $args );
}

interface IObservable
{
  function addObserver( $observer );
}

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\n" );
  }
}

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

PHP设计模式之观察者模式,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。