亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript 模式設計之工廠模式學習心得

 更新時間:2010年04月27日 14:24:33   作者:  
接口的實現,從而使不同子類可以被同等的對待,恰當的使用工廠模式,但不要拘泥與形式,理解本質。
模式類型:工廠模式

模式說明:常用模式之一,用來動態(tài)創(chuàng)建對象

適用范圍:在運行期間需要在一系列可互換的子類中進行選擇的類

注意事項:接口的實現,從而使不同子類可以被同等的對待,恰當的使用工廠模式,但不要拘泥與形式,理解本質。

關鍵點:以 函數/類/子類 構建的選擇器

本質:函數作為選擇器的使用

一般使用形式:

作為獨立的選擇器存在:

復制代碼 代碼如下:

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;
}
}

或作為類的一個方法存在:

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

延伸:

工廠模式的本質就是選擇器的應用,選擇器不僅可作為對象的選擇,還可作為函數的選擇,類的選擇,參數的選擇

函數的選擇,如:
復制代碼 代碼如下:

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);
}
}
})();//避免多次判斷

類的選擇:

復制代碼 代碼如下:

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

參數的選擇:

復制代碼 代碼如下:

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

相關文章

  • JavaScript 三種創(chuàng)建對象的方法

    JavaScript 三種創(chuàng)建對象的方法

    JavaScript中對象的創(chuàng)建有以下幾種方式 使用內置對象 使用JSON符號 自定義對象構造。大家可以參考下。
    2009-10-10
  • 收集的幾個不錯的javascript類小例子

    收集的幾個不錯的javascript類小例子

    自己比較喜歡javascript類,主要是方便擴展。
    2007-12-12
  • 最簡單的javascript對象實例代碼

    最簡單的javascript對象實例代碼

    非常簡單的js面向對象實例代碼,主要是利用了this,對于js面向對象的學習資料,可以查看腳本之家以前的文章。
    2009-12-12
  • javascript 面向對象編程基礎 多態(tài)

    javascript 面向對象編程基礎 多態(tài)

    javascript 面向對象編程基礎 多態(tài) 的實現方法說明,大家可以看下下面的代碼。
    2009-08-08
  • Javascript面向對象擴展庫代碼分享

    Javascript面向對象擴展庫代碼分享

    最近一直在用js做項目,遇到了許多需要應用面向對象來設計的功能,由于js對OOP的原生支持還不是很完善,所以就寫了一個面向對象的擴展庫用做底層支持,現在把它單獨整理出來,完善了一些功能,在這里分享一下
    2012-03-03
  • javascript 面向對象編程  function是方法(函數)

    javascript 面向對象編程 function是方法(函數)

    在進行編程時,必免不了要碰到復雜的功能。初學者最怕復雜的功能,因為不能夠很好的進行功能邊界劃分,只能一大串if、循環(huán)加case堆疊在一起,結果出來的程序自己看著暈,別人看著更暈。
    2009-09-09
  • CLASS_CONFUSION JS混淆 全源碼

    CLASS_CONFUSION JS混淆 全源碼

    這里通過JS字符串替換、隨機數運算實現混淆JS代碼,達到降低代碼可讀性,以保護代碼的目的,需要的朋友可以參考一下
    2007-12-12
  • JS類定義原型方法的兩種實現的區(qū)別評論很多

    JS類定義原型方法的兩種實現的區(qū)別評論很多

    JS類定義原型方法的兩種實現的區(qū)別評論很多...
    2007-09-09
  • JS繼承 筆記

    JS繼承 筆記

    JavaScript中沒有類的概念,與類相關的繼承的概念更是無從談起,但是我們可以通過特殊的語法來模擬面向對象語言中的繼承。
    2011-07-07
  • Javascript 類與靜態(tài)類的實現(續(xù))

    Javascript 類與靜態(tài)類的實現(續(xù))

    由于MM的事件已干完,接著我們的靜態(tài)類的實現。這東西在Javascript里用得會非常的頻繁,因為針對現在的網頁,多個基于同一個類對象的頁面不多,往往不同塊對象的交互就可以解決問題了,這就需要在JS針對元素定義幾個靜態(tài)類就可以完事了,進入正題。
    2010-04-04

最新評論