1,PHP回调函数是一个很有用的语法,可以将业务对象与附加其上的处理逻辑隔离开来,这也是观察者模式的一种实现。

<?php
class Product
{
    
public $name;
    
public function __construct($name)
    {
        
$this->name = $name;
    }
}
class Processor
{
    
private $callbacks = array();
    
public function registerCallback($callback
    {
        
if ( !is_callable($callback)) {
            
throw new Exception("not callable");
        }
        
$this->callbacks[] = $callback;
    }
    
public function process($product
    {
        
foreach($this->callbacks as $callback) {
            
call_user_func($callback, $product);
        }
    }
}
class Mailer
{
    
public function sendMail($product
    {
        
print "mailing ({$product->name})\n";
    }
}
$logger = create_function('$product', 'print "loggint({$product->name})\n";');
$processor = new Processor();
$processor->registerCallback($logger);
$processor->registerCallback(array(new Mailer(), "sendMail"));
$processor->process(new Product("pen"));
?>

相关文章:

  • 2021-09-20
  • 2022-02-14
  • 2021-11-12
  • 2021-07-21
  • 2021-08-25
  • 2021-09-05
  • 2021-06-16
  • 2022-02-20
猜你喜欢
  • 2021-04-25
  • 2021-09-02
  • 2022-03-04
  • 2021-09-16
  • 2021-05-22
  • 2022-02-03
  • 2021-09-19
相关资源
相似解决方案