<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

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

            時間:2024-10-26 09:41:03 JavaScript 我要投稿
            • 相關推薦

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

              模式類型:工廠模式

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

              模式說明:常用模式之一,用來動態創建對象

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

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

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

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

              一般使用形式:

              作為獨立的選擇器存在:

              復制代碼 代碼如下:

              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();

              }//如果此時網絡不可用,創建可緩存AJAX對象

              else if(this.isHightLatency()){

              xhr= new QueuedHandler();

              }//如果網絡延遲較大,創建隊列形式AJAX對象

              else {

              xhr=new SimpleHandler();

              }//如果網絡正常,創建簡單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模式設計之工廠模式學習心得】相關文章:

            常用的JavaScript模式09-22

            Java設計模式之模板方法模式10-29

            對javascript嚴格模式的理解08-18

            分析JavaScript函數的調用模式07-20

            javascript 單例模式詳解及簡單實例08-17

            企業薪酬設計基本模式及組合模式09-18

            薪酬管理之薪酬模式探究09-01

            動畫設計的意圖模式07-06

            要設計不同的薪酬模式10-05

            Oracle歸檔模式的運行模式08-05

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看