test code

时间:2023-03-09 00:54:54
test code
 <?php
abstract class Mediator{
abstract public function send($message, $colleague);
} abstract class Colleague{
private $_mediator = null;
public function __construct($mediator){
$this->_mediator = $mediator;
} public function send($message){
$this->_mediator->send($message, $this);
} abstract public function notify($message);
} class ConcreteMediator extends Mediator{
private $_colleague1 = null;
private $_colleague2 = null;
public function send($message, $colleague){
if($colleague == $this->_colleague1){
$this->_colleague2->notify($message);
}else{
$this->_colleague1->notify($message);
}
} public function set($colleague1, $colleague2){
$this->_colleague1 = $colleague1;
$this->_colleague2 = $colleague2;
}
} class Colleague1 extends Colleague{
public function notify($message){
echo 'Colleague1 recv :'.$message;
}
} class Colleague2 extends Colleague{
public function notify($message){
echo 'Colleague2 recv: '.$message;
}
} $mediator = new ConcreteMediator();
$objC1 = new Colleague1($mediator);
$objC2 = new Colleague2($mediator); $mediator->set($objC1,$objC2); $objC1->send('to c2 from c1');
echo '<br>';
$objC2->send('to c1 from c2');
?>