设计模式(八)--桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

意图:将抽象部分与实现部分分离,使它们都可以独立的变化。

主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。

abstract class info{
    public $sendMethod;
    abstract public function msg();
    public function __construct($sendMethod){
        $this->sendMethod=$sendMethod;
    }
    public function send($to, $content){
        $this->sendMethod->send($to, $content);
        $this->msg();
    }
}
class message{
    public function send($to, $content){
        echo $to.'-使用站内发送-'.$content;
    }
}
class phone{
    public function send($to, $content){
        echo $to.'-使用手机发送-'.$content;
    }
}
class email{
    public function send($to, $content){
        echo $to.'-使用邮箱发送-'.$content;
    }
}

class slows extends info{
    public function msg(){
        echo '-慢消息';
    }
}
class commons extends info{
    public function msg(){
        echo '-普通消息';
    }
}
class fasts extends info{
    public function msg(){
        echo '-快消息';
    }
}

$obj=new fasts(new phone());
$obj->send("小名","回家吃饭");

参考:http://video.1kejian.com/video/?79018-0-15.html

原文地址:https://www.cnblogs.com/Caoxt/p/10154816.html