php设计模式-桥接模式
2021-01-17 05:15
标签:extends 系统 设计模式 桥接模式 create abs func ted return 使用情景:系统通知用户,通知方式有站内信,邮件,手机短信3种方式,信的内容分普通,紧急两种程度,为了不避免两两组合,m* n种可能的搭配,使用桥接模式 结果: php设计模式-桥接模式 标签:extends 系统 设计模式 桥接模式 create abs func ted return 原文地址:https://www.cnblogs.com/xiangdongsheng/p/13369743.html// 抽象
abstract class Info{
protected $_send = null; // 发送器 (site, email, sms);
public function __construct($send)
{
$this->_send = $send;
}
abstract public function createContent($content);
public function send($content)
{
$this->_send->send($content); // 调用不同发送器的发送方法
}
}
// 消息发送方式
class SiteInfo // 站内信
{
public function send($content)
{
echo ‘站内信:‘ . $content;
}
}
class EmailInfo // 邮件
{
public function send($content)
{
echo ‘邮件:‘ . $content;
}
}
class SMSInfo // 手机短信
{
public function send($content)
{
echo ‘SMS:‘ . $content;
}
}
// 消息紧急程度
class Common extends Info // 普通通知
{
public function createContent($content)
{
return ‘普通-‘ . $content;
}
}
class Urgent extends Info // 紧急通知
{
public function createContent($content)
{
return ‘紧急-‘ . $content;
}
}
$common = new Common(new SMSInfo());
$content = $common->createContent(‘吃饭‘);
$common->send($content);
echo ‘
‘;
$common = new Urgent(new EmailInfo());
$content = $common->createContent(‘着火‘);
$common->send($content);
SMS:普通-吃饭
邮件:紧急-着火