php八大設計模式之橋接模式

2021-07-29 16:56:59 字數 1894 閱讀 8360

乙個抽象產生多種具體的實現方式,單純的通過子類繼承會有子類**(過多的子類產生)的現象,系統需要它們之間進行動態耦合。
<?php

header("content-type:text/html;charset=utf8");

/*** 在乙個**中,我們都有給使用者發通知訊息的情況。比如有站內傳送、 郵箱傳送、及簡訊傳送等等。

* 面向過程形式完成傳送。

*///傳送資訊介面。

inte***ce

info

//站內方式傳送。

class

znimplements

info

}//郵箱方式傳送。

class

email

implements

info

}//簡訊方式傳送。

class

sm******ments

info

}/**

* 可是如下還有分傳送的級別呢?是不是又要繼承出多個子類?

* 站內方式傳送【普通】。

* class zninfo implements info{}

* 郵箱方式傳送【普通】。

* class emailinfo implements info{}

* 簡訊方式傳送【普通】。

* class smsinfo implements info{}

* ......

* .........**/

?>

橋接模式:

<?php

header("content-type:text/html;charset=utf8");

/*** 橋接模式完成傳送。

* 雖然**有些耦合,但是解決了子類**(過多的現象)。

*///抽象的傳送類。

abstract

class

info

//加工簡訊內容方法。

abstract

public

function

msg($content);

//傳送資訊方法。

public

function

send

($to,$content)

}//站內傳送方式。

class

zn }

//郵箱傳送方式。

class

email

}//簡訊傳送方式。

class

sms

}

//普通傳送方式。

class

commoninfo

extends

info

}//緊急傳送方式。

class

warninfo

extends

info

}//特急傳送方式。

class

dangerinfo

extends

info

}//實現傳送功能。

/** * 步驟是:

* 例項化一種傳送方式,將例項化後的物件傳給傳送方式。

* 傳送方式實現了抽象傳送類,所以會先將當前物件賦給乙個屬性。

* 然後通過呼叫抽象傳送類的 send ,去實現處理資訊內容再傳送。

*/$common=new commoninfo(new zn());

$common->send("小王","回家啦");

echo

''; $common=new commoninfo(new sms());

$common->send("小王","回家啦");

?>

設計模式之橋接模式(八)

設計模式之橋接模式 一 引言 每個人都有吃飯睡覺的行為,這時我們可以抽象出來乙個人型別,然後讓每個人去繼承人型別,這時,每增加乙個人,我們只需擴充套件乙個子類就可以了,但是,人型別需要增加行為時,比如增加乙個玩手機的行為,我們只許在人型別中擴充套件玩手機這乙個方法,但是對於子類來說,如果這時子類數量...

PHP設計模式之橋接模式

橋接模式 如 論壇給使用者傳送站內信 手機 sms資訊 資訊的程度分為普通 加急 緊急 三種不同的程度 第一種情況 不考慮使用橋接模式的情況下,普通模式,我們會這麼寫 inte ce msg class znmsg implements msg class smsmsg implements msg...

PHP設計模式之橋接模式

生活場景引入 現在的生活都離不開手機,手機中又有不同的品牌,小公尺,華為,三星,蘋果。每一種手機的設計又不一樣,比如最開始的翻蓋手機,直板手機,到現在的全面屏手機,假如現在的每個手機廠商都是最開始從翻蓋手機做起,雖然手機的樣子不一樣,但是手機的主要功能還是沒有變的,開機,打 發簡訊,關機 這些個最基...