• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 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={};

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美国产国产一区 | 日本精品专区一二三区 | 亚洲欧美日韩日产在线首页 | 日本午夜免a费看大片中文4 | 亚洲性爱免费视频网 | 亚洲情a成黄在线观看动漫尤物 |

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