欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript 模式設(shè)計之工廠模式詳細(xì)說明

 更新時間:2010年05月10日 11:52:56   作者:  
javascript 模式設(shè)計之工廠模式詳細(xì)說明
模式類型:工廠模式
模式說明:常用模式之一,用來動態(tài)創(chuàng)建對象
適用范圍:在運行期間需要在一系列可互換的子類中進行選擇的類
注意事項:接口的實現(xiàn),從而使不同子類可以被同等的對待,恰當(dāng)?shù)氖褂霉S模式,但不要拘泥與形式,理解本質(zhì)。
關(guān)鍵點:以 函數(shù)/類/子類 構(gòu)建的選擇器
本質(zhì):函數(shù)作為選擇器的使用
一般使用形式:
作為獨立的選擇器存在:
復(fù)制代碼 代碼如下:

function FactoryMode(index){
switch(index){
case "index1" :
return new Class1();break;
case "index2":
return new Class2();break;
case "index3":
return new Class3();break;
default:return new ClassComm();break;
}
}

或作為類的一個方法存在:
復(fù)制代碼 代碼如下:

var MainClass=function(){};//主類構(gòu)造器
MainClass.prototype={
FactoryMode:function(){}//子類選擇器
}

又或隱式選擇,即不以使用者的主觀選擇而選擇:

復(fù)制代碼 代碼如下:

var xmlRequest=function(){
if(this.isOffOnline()){
xhr= new OfflineHandler();
}//如果此時網(wǎng)絡(luò)不可用,創(chuàng)建可緩存AJAX對象
else if(this.isHightLatency()){
xhr= new QueuedHandler();
}//如果網(wǎng)絡(luò)延遲較大,創(chuàng)建隊列形式AJAX對象
else {
xhr=new SimpleHandler();
}//如果網(wǎng)絡(luò)正常,創(chuàng)建簡單AJAX對象
interface.ensureImplements(xhr,AjaxHandler);
//檢查對象是否實現(xiàn)了接口,從而確保以后的工作可以順利進行
return xhr;
}

延伸:

工廠模式的本質(zhì)就是選擇器的應(yīng)用,選擇器不僅可作為對象的選擇,還可作為函數(shù)的選擇,類的選擇,參數(shù)的選擇
函數(shù)的選擇,如:
復(fù)制代碼 代碼如下:

var addEvent=(function(){
if(!-[0,]){
return function(elem,type,handler){
elem[type+handler.toString()]=handler;
elem.attachEvent("on"+type,elem[type+handler.toString]);
}}//if IE
else {
return function(elem,type,handler){
elem.addEventListener(type,handler,false);
}
}
})();//避免多次判斷

類的選擇:

復(fù)制代碼 代碼如下:

var suitableClass=function(){
if(match condition A) return Class1;
else if(match condition B) return Class2;
else return ClassComm;
}

參數(shù)的選擇:

復(fù)制代碼 代碼如下:

function Country(country){
if(country=="China")
this.config={};//設(shè)置基本參數(shù)1
else if(contry=="America")
this.config={};//設(shè)置參數(shù)2
else if()
.......//等等
}
Country.prototype={};

相關(guān)文章

  • JavaScript將坐標(biāo)字符串轉(zhuǎn)為數(shù)組的項目實踐

    JavaScript將坐標(biāo)字符串轉(zhuǎn)為數(shù)組的項目實踐

    本文主要介紹了JavaScript將坐標(biāo)字符串轉(zhuǎn)為數(shù)組的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Ajax基礎(chǔ)知識詳解

    Ajax基礎(chǔ)知識詳解

    本文主要介紹了Ajax基礎(chǔ)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JS如何監(jiān)聽div的resize事件詳解

    JS如何監(jiān)聽div的resize事件詳解

    這篇文章主要給大家介紹了關(guān)于JS如何監(jiān)聽div的resize事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • js運動動畫的八個知識點

    js運動動畫的八個知識點

    本文給大家分享的是個人在學(xué)習(xí)js運動動畫的過程中總結(jié)的我們需要注意的8個知識點,分別是速度動畫、透明度漸變、緩沖運動、多物體運動、獲取樣式、任意屬性值、鏈?zhǔn)竭\動和同時運動,非常的詳細(xì),推薦給小伙伴們。
    2015-03-03
  • 通過js控制時間,一秒一秒自己動的實例

    通過js控制時間,一秒一秒自己動的實例

    下面小編就為大家?guī)硪黄ㄟ^js控制時間,一秒一秒自己動的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • JS 無法通過W3C驗證的處理方法

    JS 無法通過W3C驗證的處理方法

    今天在頁面上使用JS時發(fā)現(xiàn)無法通過W3C驗證,檢查了一會發(fā)現(xiàn)此方法可以屏蔽大多數(shù)JS無法通過驗證的問題,簡單實用
    2010-03-03
  • JS 數(shù)組 移除 實現(xiàn)代碼

    JS 數(shù)組 移除 實現(xiàn)代碼

    可以移除數(shù)組中的值函數(shù) ,用來取出數(shù)組中的一些值,間接的修改了數(shù)組值。
    2009-07-07
  • JS實現(xiàn)圖片局部放大或縮小的方法

    JS實現(xiàn)圖片局部放大或縮小的方法

    這篇文章主要介紹了JS實現(xiàn)圖片局部放大或縮小的方法,涉及javascript事件響應(yīng)及頁面元素動態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法

    Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法

    今天小編就為大家分享一篇Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 詳解小程序毫秒級倒計時(適用于拼團秒殺功能)

    詳解小程序毫秒級倒計時(適用于拼團秒殺功能)

    這篇文章主要介紹了小程序毫秒級倒計時,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論