桥接模式
<?php
abstract class Info{
protected $sender = null;
public function __construct($sender){
$this->sender = $sender;
}
abstract public function msg($content);
public function send($toUser,$content){
$content = $this->msg($content);
$this->sender->send($toUser,$content);
}
}
//发送方式
class wapInsideSender{
public function send($toUser,$content){
echo '站内信to:'. $toUser . ',内容是:' . $content;
}
}
class wapEmailSender{
public function send($toUser,$content){
echo '邮件发送to:'. $toUser . ',内容是:' . $content;
}
}
class wapMessageSender{
public function send($toUser,$content){
echo '手机短信to:'. $toUser . ',内容是:' . $content;
}
}
//发送速度快慢
class normalInfo extends Info{
public function msg($content){
return '(普通)'. $content;
}
}
class warmingInfo extends Info{
public function msg($content){
return '(紧急)'. $content;
}
}
class dangerInfo extends Info{
public function msg($content){
return '(特急)'. $content;
}
}
//发送
$normalInfo = new warmingInfo(new wapEmailSender());
$normalInfo->send('blackbinbin','reply my message right now!!');
//发送这个动作是个变化因素,分两种,一种是速度(普通,紧急,特急),一种是方式(站内信,邮件,手机短信),每种又有三种方法,如果独立弄成方法的话,需要3x3共9种方法类
//桥接模式,就是将发送信息内的方法或者速度,可以传入作为类的一个属性,这样只要写3+3共6种类就可以实现发送这个动作