PHP 设计模式(桥接模式)

//桥接模式
//场景 论坛给用户发短信,站内,email或者手机号码;
//interface mess{
//    public function send();
//}
站内发送
//class zh implements mess{
//    public function send(){
//        echo '站内发送';
//    }
//}
//class emaile implements mess{
//    public function send(){
//        echo '手机短信';
//    }
//}
//class mss implements mess{
//    public function send(){
//        echo '手机';
//    }
//}
//内容也分普通,加急,特急;
//class putong implements mess
//class jiaji implements mess
//class teji implements mess

/**
 * 思考 信的发送方式
 *     信的紧急情况
 * 如果每个信息都可以使用 三种发送方式就会产生9中发送信息
 * 会发生子类非常多
 * 这就需要 桥接模式
 */
//桥接模式
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 comm extends info{
    public function msg($content){
        return '普通'.$content;
    }
}
//紧急类
class warninfo extends info{
    public function msg($content){
        return '紧急'.$content;
    }
}
//特急类
class daninfo extends info{
    public function msg($content){
        return '特急'.$content;
    }
}
//发送方式类
//站内
class zn {
    public function send($to, $content){
        echo '站内给'.$to.'内容是'.$content;
    }
}
//电子邮件
class email {
    public function send($to, $content){
        echo 'email'.$to.'内容是'.$content;
    }
}
//短信
class phone {
    public function send($to, $content){
        echo '短信给'.$to.'内容是'.$content;
    }
}
//用站内发普通信息
$msg = new comm(new zn());
$msg->send('小明','你好');
//思考:虽然产生了耦合,但是会给我们减少了信息和发送方式组合起来类的数量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值