2.16. 中介者模式(Mediator)
理解
如果你懂lar
的模型关联,那么将很容易理解代码。
把 中介
看成关联的类。
代码实现
<?php
abstract class Mediator{
public $mediator; //中介
//设置中介
public function setMediator($class)
{
$this->mediator = $class;
}
public function save()
{
echo get_class($this)."保存成功".PHP_EOL;
if( $this->mediator != null) //如果有中介 就调用中介
$this->mediator->save();
}
}
class User extends Mediator { }
class UserInfo extends Mediator {
public function get() { return "userinfo".PHP_EOL; }
}
class UserMoney extends Mediator {}
$user = new User();
$user->setMediator(
new UserInfo()
);
echo $user->mediator->get();
$user->mediator->setMediator(
new UserMoney()
);
$user->save();
运行结果
userinfo
User保存成功
UserInfo保存成功
UserMoney保存成功