您好,登錄后才能下訂單哦!
如何在php項目中使用橋接模式?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
當一個信息時
根據發送渠道分為:QQ消息、email消息、短信消息等
根據消息類型分為:普通、警告、危急等
每種消息都有三種類型(普通QQ消息、警告QQ消息、危急QQ消息...),
每種情況單獨寫一個類就需要寫九個,如果擴展一個類型,就需要再寫三個類。
使用橋接模式,可以減少類的數量,易擴展
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消息】發送給:'.$to.',內容:'.$content; } } //郵件信息 class email_msg{ public function send($to,$content){ return '【Email消息】發送給:'.$to.',內容:'.$content; } } //短信消息 class sms_msg{ public function send($to,$content){ return '【短信消息】發送給:'.$to.',內容:'.$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','好好學習'); var_dump($res); $a = new warning_info(new sms_msg()); $res = $a->send('zhang san','好好學習'); var_dump($res);
運行結果:
string(54) "【普通】【Email消息】發送給:zhang san,內容:好好學習"
string(53) "【警告】【短信消息】發送給:zhang san,內容:好好學習"
看完上述內容,你們掌握如何在php項目中使用橋接模式的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。