<?php
/*
* 桥接模式
* 使用发送器,将一个类对象传入另一个类作为属性,耦合M+N个类
*
*/
abstract class Info {
protected $_send = NULL;
public function __construct($send) {
$this->_send = $send;
}
abstract function msg($content);
public function send($to, $content) {
$content = $this->msg($content);
$this->_send->send($to, $content);
}
}
class Email {
public function send($to, $content) {
echo "Email: From:$to Content:$content<br>";
}
}
class Sms {
public function send($to, $content) {
echo "Sms: From:$to Content:$content<br>";
}
}
class CommonBridge extends Info{
public function msg($content) {
return 'CommonBridge>>'.$content;
}
}
class DangerBridge extends Info{
public function msg($content) {
return 'DangerBridge>>'.$content;
}
}
//调用桥接
$email = new Email();
$CommonEmail = new CommonBridge($email);
$CommonEmail->send('Tom','XXXXX');
$DangerSms = new DangerBridge(new Sms());
$DangerSms->send('Lucy','OOOOOOO');