JavaScript設(shè)計(jì)模式--橋梁模式引入操作實(shí)例分析
本文實(shí)例講述了JavaScript設(shè)計(jì)模式--橋梁模式引入操作。分享給大家供大家參考,具體如下:
1.使用情況
(1)事件的監(jiān)控
#1,利用頁(yè)面的button來(lái)選擇寵物的例子(思路)
button.addEvent(element,"click",getPetByBame);
function getPetByBame(e){
var id = this.id;
asyncRquest("GET",'pet.action?id='+id,function(pet){
consols.log("request pet"+pet.resopnseText)
})
}
#2,addEvent函數(shù)
/*obj:需要增加事件的對(duì)象
* type:事件名稱(chēng)
* fn:執(zhí)行事件的函數(shù)
* */
function addEvent(obj,type,fn){//addEvent:為某個(gè)文檔節(jié)點(diǎn)增加事件的方法
if(obj.addEventListener){//Mozilla中:
obj.addEventListener(type,fn,false);
}else if(obj.attachEvent){//IE中:
obj["e"+type+fn] = fn;
obj[type+fn] = function(){
obj["e"+type+fn]()
}
obj.attachEvent("on"+type,fn)
}
}
總結(jié):該種方式對(duì)于單元測(cè)試很難進(jìn)行
改進(jìn)為用簡(jiǎn)單的橋梁模式來(lái)解決
#1,后臺(tái)中的api
function getPetByBame(id,callBack){
sayncRquest("GET",'url?id='+id,function(pet){
callBack(pet)
})
#2,橋梁
//定義一個(gè)橋梁叫抽象和實(shí)現(xiàn)相互聯(lián)系在一起
addEvent(element,"click",getPetByNameBridge)
function getPetByNameBridge(){
getPetByBame(this.id,function(pet){
consols.log("request pet"+pet.resopnseText);
})
}
總結(jié):這種做法使API和展現(xiàn)層完全分離,API和展現(xiàn)層可以靈活的變動(dòng)。
(2)特權(quán)函數(shù)
//特權(quán)函數(shù)
var privilege=function () {
//信息全封閉,內(nèi)部業(yè)務(wù)邏輯復(fù)雜,做成一個(gè)特權(quán)函數(shù),使調(diào)用方便
var complex=function (x,y) {
//復(fù)雜的數(shù)學(xué)處理
}
this.bridge=function () { //提供公共接口,返回一個(gè)單體
return {
bridgeAdd:function () {
//處理前
complex(1,2);
//處理后
}
}
}
}
(3)多個(gè)類(lèi)的連接
//多個(gè)類(lèi)的連接
var class1=function (a,b) {
this.a=a;
this.b=b;
}
var class2=function (e) {
this.e=e;
}
//橋梁的連接
var bridgeClass=function () {
this.one=new Class1(1,2);
this.two=new Class1(1);
}
//目的:兩個(gè)類(lèi)能獨(dú)立的修改,而門(mén)面的意義在于調(diào)用方便
橋梁模式:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript實(shí)現(xiàn)的聯(lián)動(dòng)菜單特效示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的聯(lián)動(dòng)菜單特效,涉及javascript事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07
利用JavaScript控制元素(標(biāo)簽)的顯示與隱藏
這篇文章主要給大家介紹了關(guān)于如何利用JavaScript控制元素(標(biāo)簽)的顯示與隱藏的相關(guān)資料,JavaScript有多種方式可以實(shí)現(xiàn),文中介紹了三種方法以及區(qū)別,需要的朋友可以參考下2023-07-07
JavaScript的arguments對(duì)象應(yīng)用示例
使用特殊對(duì)象 arguments,開(kāi)發(fā)者無(wú)需明確指出參數(shù)名,就能訪問(wèn)它們,下面為大家介紹下其具體的應(yīng)用2014-09-09
《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記二:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法分析
這篇文章主要介紹了Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)繼承用法,結(jié)合實(shí)例形式分析了《javascript設(shè)計(jì)模式》中JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)繼承相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04

