freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

橋梁模式的結(jié)構(gòu)與示意性源代碼(編輯修改稿)

2024-07-14 16:29 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 號(hào)碼、信用卡電話、PIN標(biāo)識(shí)電話等等,必修對(duì)現(xiàn)有dial中使用char[10]存儲(chǔ)號(hào)碼改為能夠撥打任意長(zhǎng)度的電話號(hào)碼。顯然,所有的調(diào)制解調(diào)器客戶程序都必須更改。客戶同意了對(duì)調(diào)制解調(diào)器客戶程序的更改,因?yàn)樗麄儎e無選擇。糟糕的是,現(xiàn)在必須要去告訴DedUser的編寫者,他們必須要更改他們的代碼!你可以想象他們聽到這個(gè)會(huì)有多高興。本來他們是不用調(diào)用dial的。這就是許多項(xiàng)目都會(huì)具有的那種有害的混亂依賴關(guān)系。系統(tǒng)某一部分中的一個(gè)雜湊體(kludge)創(chuàng)建了一個(gè)有害的依賴關(guān)系,最終導(dǎo)致系統(tǒng)中完全無關(guān)的部分出現(xiàn)問題。如果使用ADAPTER模式解決最初的問題的話,就可以避免這個(gè)嚴(yán)重問題。如圖:請(qǐng)注意,雜湊體仍然存在。適配器仍然要模擬連接狀態(tài)。然而,所有的依賴關(guān)系都是從適配器發(fā)起的。雜湊體和系統(tǒng)隔離,藏身于幾乎無人知曉的適配器中。BRIDGE模式看待這個(gè)問題,還有另外一個(gè)方式。現(xiàn)在,出現(xiàn)了另外一種切分Modem層次結(jié)構(gòu)的方式。如下圖:這不是一個(gè)理想的結(jié)構(gòu)。每當(dāng)增加一款新硬件時(shí),就必須創(chuàng)建兩個(gè)新類一個(gè)針對(duì)專用的情況,一個(gè)針對(duì)撥號(hào)的情況。每當(dāng)增加一種新連接類型時(shí),就必須創(chuàng)建3個(gè)新類,分別對(duì)應(yīng)3款不同的硬件。如果這兩個(gè)自由度根本就是不穩(wěn)定的,那么不用多久,就會(huì)出現(xiàn)大量的派生類。在類型層次結(jié)構(gòu)具有多個(gè)自由度的情況中,BRIDGE模式通常是有用的。我們可以把這些層次結(jié)構(gòu)分開并通過橋把它們結(jié)合到一起,而不是把它們合并起來。如圖:我們把調(diào)制解調(diào)器類層次結(jié)構(gòu)分成兩個(gè)層次結(jié)構(gòu)。一個(gè)表示連接方法,另一個(gè)表示硬件。這個(gè)結(jié)構(gòu)雖然復(fù)雜,但是很有趣。它的創(chuàng)建不會(huì)影響到調(diào)制解調(diào)器的使用者,并且還完全分離了連接策略和硬件實(shí)現(xiàn)。 ModemConnectController的每個(gè)派生類代表了一個(gè)新的連接策略。在這個(gè)策略的實(shí)現(xiàn)中可以使用sendlmp、receivelmp、 diallmp和hanglmp。新imp方法的增加不會(huì)影響到使用者??梢允褂肐SP來給連接控制類增加新的接口。這種做法可以創(chuàng)建出一條遷移路徑,調(diào)制解調(diào)器的客戶程序可以沿著這條路徑慢慢地得到一個(gè)比dial和hangup層次更高的API。五、另外一個(gè)實(shí)際應(yīng)用Bridge模式的例子該例子演示了業(yè)務(wù)對(duì)象(BusinessObject)通過Bridge模式與數(shù)據(jù)對(duì)象(DataObject)解耦。數(shù)據(jù)對(duì)象的實(shí)現(xiàn)可以在不改變客戶端代碼的情況下動(dòng)態(tài)進(jìn)行更換。//BridgepatternRealWorldexampleusingSystem。using//AbstractionclassBusinessObject{//FieldsprivateDataObjectdataObject。protectedstringgroup。//ConstructorspublicBusinessObject(stringgroup){=group。}//PropertiespublicDataObjectDataObject{set{dataObject=value。}get{returndataObject。}}//MethodsvirtualpublicvoidNext(){()。}virtualpublicvoidPrior(){()。}virtualpublicvoidNew(stringname){(name)。}1
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1