桥接(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