2.定义抽象同事类,咱们的抽象同事类就是一个人。。。。。。,他buy买东西,他getThings卖东西。
abstract class Human{
protected $mediator=null;
abstract public function getThings($number);
abstract public function buy($name,$number);
public function setMediator($mediator)
{
$this->mediator = $mediator;
}
public function getMediator()
{
return $this->mediator;
}
//set/get自己去加!!
}
3.具体中介者
class ConcreteMediator implements Mediator{
private $orchardist=null;//果农
private $boss=null;//化肥老板
public function sell($name,$number){
if($name == 'fruit'){
$fruit=$this->orchardist->getThings($number);
echo '商场从果农给你'.$fruit.'!'."\n";
return $fruit;
}
if($name == 'fertilizer'){
$fertilizer=$this->boss->getThings($number);
echo '商场从化肥老板那里给你'.$fertilizer.'!'."\n";
return $fertilizer;
}
}
//set/get自己去加!!
}
4.具体2个同事,果农和化肥老板
class Orchardist extends Human{
public function __construct($mediator){
$this->mediator=$mediator;
}
public function getThings($number){
return $number.'水果';
}
public function buy($name,$number){
$result=$this->mediator->sell($name,$number);
echo '我们果农得到了'.$result."\n";
}
}
class Boss extends Human{
public function __construct($mediator){
$this->mediator=$mediator;
}
public function getThings($number){
return $number.'化肥';
}
public function buy($name,$number){
$result=$this->mediator->sell($name,$number);
echo '我们化肥老板得到了'.$result."\n";
}
}