日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[设计模式]桥接模式

發(fā)布時(shí)間:2023/12/9 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [设计模式]桥接模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

橋接模式可以把抽象類和實(shí)現(xiàn)類進(jìn)行各自封裝和擴(kuò)展,目的在于解耦。
由于橋接模式可以增強(qiáng)了組合性,我們可以很靈活地修改類,并且很好地重用。
我們可以先看一下簡單的片斷:

//這是一個(gè)演示簡單的橋接模式片斷(本例子只假設(shè)在標(biāo)準(zhǔn)瀏覽器情況下)

//先獲取DOM
var DomA = document.getElementById('divA');

//給DomA綁定事件
DomA.addEventListener('click',funcA,false);

//定義funcA
function funcA(){
var id = this.id;
alert("I'm HTMLElement, My ID is:" + id);
}

以上的例子很簡單,就是把一個(gè)DOM綁定了click事件,執(zhí)行一個(gè)含有alert()的函數(shù)。
很明顯,funcA能做的事只有兩件:
1、獲得元素的ID。
2、顯示I'm HTMLElement, My ID is: divA。

funcA就是所謂的“寫死”了,也就是強(qiáng)耦合,里面的alert()永遠(yuǎn)只是服務(wù)于funcA,大大失去了靈活性。
現(xiàn)在我們用橋接模式的思想,把funcA拆分,解耦。

//這是一個(gè)演示簡單的橋接模式片斷(本例子只假設(shè)在標(biāo)準(zhǔn)瀏覽器情況下)

//先獲取DOM
var DomA = document.getElementById('divA');

//給DomA綁定事件
DomA.addEventListener('click',funcA,false);


//這里把上例的funcA進(jìn)行拆分出一個(gè)funcAlert
function funcAlert(txt,id){
alert(txt+id);
}

//定義funcA
function funcA(){
var id = this.id;
//橋接funcAlert函數(shù)
funcAlert("I'm HTMLElement ,My ID is:",id);
}

好了,以后funcAlert()就可以作用于其他函數(shù),只要給funcALert(),傳入?yún)?shù)即可。
當(dāng)然,本例只是為了演示而做了一個(gè)比較簡單的拆分。er......看起來有點(diǎn)無謂。
不管如何,只是表達(dá)了橋接的思想。
其實(shí)就是把多個(gè)功能盡量拆分,解耦,做到可重用,然后在使用時(shí),再拼裝起來。將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立變化,重用。就這是橋接模式的思想。

還記得我在分享單體模式嗎?里面有一個(gè)這樣的片斷:

var XZB = (function(){
var G = 10;
var Return = {
getG:function(){
return G;
},
setG:function(g){
G = g;
}
}
return Return;
})();

其實(shí)里面的Return也是一種解耦,只不過他的耦合度相對低一點(diǎn)而已。
里面的Return可以設(shè)定有N種方法來實(shí)現(xiàn)N種功能,只不過他們都只局限于操作里面的私有變量。

OK,講完了橋裝模式,我們來講講他的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
降低抽象層和具體實(shí)現(xiàn)之間的耦合,使各層獨(dú)立出來管理。橋接模式成了各層的粘合劑。

缺點(diǎn):
因?yàn)槊總€(gè)橋接都會(huì)調(diào)用外層的函數(shù),這就需要往上搜索變量,會(huì)有性能上的影響。
還有一點(diǎn),如果被橋接的函數(shù)只是在于橋接函數(shù)里面調(diào)用,而再也沒被其他函數(shù)調(diào)用,這時(shí)就沒必要橋接了。

?

寫在最后,看完這個(gè)橋接模式之后,有沒發(fā)現(xiàn)和我之前寫的工廠模式有點(diǎn)相似,難道工廠模式就只是多了判斷,然后選擇性調(diào)用嗎?
er...我也說不清,總言之,我覺得設(shè)計(jì)模式只是實(shí)現(xiàn)功能的代碼寫法,也并不是說什么功能就應(yīng)該用什么模式,靈活運(yùn)用才是王道。


轉(zhuǎn)載于:https://www.cnblogs.com/zzbo/archive/2012/02/14/2350823.html

總結(jié)

以上是生活随笔為你收集整理的[设计模式]桥接模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。