本文實(shí)例講述了php橋接模式應(yīng)用。分享給大家供大家參考,具體如下:
橋接模式是將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。
示例:
當(dāng)一個(gè)信息時(shí)
根據(jù)發(fā)送渠道分為:QQ消息、email消息、短信消息等
根據(jù)消息類(lèi)型分為:普通、警告、危急等
每種消息都有三種類(lèi)型(普通QQ消息、警告QQ消息、危急QQ消息...),
每種情況單獨(dú)寫(xiě)一個(gè)類(lèi)就需要寫(xiě)九個(gè),如果擴(kuò)展一個(gè)類(lèi)型,就需要再寫(xiě)三個(gè)類(lèi)。
使用橋接模式,可以減少類(lèi)的數(shù)量,易擴(kuò)展
abstract class info{
public $msgClass = null;
public function __construct($obj){
$this->msgClass = $obj;
}
abstract function msg();
public function send($to,$content){
return $this->msg() . $this->msgClass->send($to,$content);
}
}
//QQ信息
class qq_msg{
public function send($to,$content){
return '【QQ消息】發(fā)送給:'.$to.',內(nèi)容:'.$content;
}
}
//郵件信息
class email_msg{
public function send($to,$content){
return '【Email消息】發(fā)送給:'.$to.',內(nèi)容:'.$content;
}
}
//短信消息
class sms_msg{
public function send($to,$content){
return '【短信消息】發(fā)送給:'.$to.',內(nèi)容:'.$content;
}
}
//普通消息
class common_info extends info{
public function msg(){
return '【普通】';
}
}
//警告消息
class warning_info extends info{
public function msg(){
return '【警告】';
}
}
//危急消息
class danger_info extends info{
public function msg(){
return '【危急】';
}
}
$a = new common_info(new email_msg());
$res = $a->send('zhang san','好好學(xué)習(xí)');
var_dump($res);
$a = new warning_info(new sms_msg());
$res = $a->send('zhang san','好好學(xué)習(xí)');
var_dump($res);
運(yùn)行結(jié)果:
string(54) "【普通】【Email消息】發(fā)送給:zhang san,內(nèi)容:好好學(xué)習(xí)"
string(53) "【警告】【短信消息】發(fā)送給:zhang san,內(nèi)容:好好學(xué)習(xí)"
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- php設(shè)計(jì)模式 Bridge (橋接模式)
- php橋接模式的實(shí)例用法及代碼分析