1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. javascript模式設(shè)計(jì)之工廠模式學(xué)習(xí)心得

        時(shí)間:2020-06-19 20:25:24 JavaScript 我要投稿

        javascript模式設(shè)計(jì)之工廠模式學(xué)習(xí)心得

          模式類型:工廠模式

        javascript模式設(shè)計(jì)之工廠模式學(xué)習(xí)心得

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

          適用范圍:在運(yùn)行期間需要在一系列可互換的子類中進(jìn)行選擇的類

          注意事項(xiàng):接口的實(shí)現(xiàn),從而使不同子類可以被同等的對(duì)待,恰當(dāng)?shù)氖褂霉S模式,但不要拘泥與形式,理解本質(zhì)。

          關(guān)鍵點(diǎn):以 函數(shù)/類/子類 構(gòu)建的選擇器

          本質(zhì):函數(shù)作為選擇器的使用

          一般使用形式:

          作為獨(dú)立的選擇器存在:

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

          }

          }

          或作為類的一個(gè)方法存在:

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

          var MainClass=function(){};//主類構(gòu)造器

          MainClass.prototype={

          FactoryMode:function(){}//子類選擇器

          }

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

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

          var xmlRequest=function(){

          if(this.isOffOnline()){

          xhr= new OfflineHandler();

          }//如果此時(shí)網(wǎng)絡(luò)不可用,創(chuàng)建可緩存AJAX對(duì)象

          else if(this.isHightLatency()){

          xhr= new QueuedHandler();

          }//如果網(wǎng)絡(luò)延遲較大,創(chuàng)建隊(duì)列形式AJAX對(duì)象

          else {

          xhr=new SimpleHandler();

          }//如果網(wǎng)絡(luò)正常,創(chuàng)建簡(jiǎn)單AJAX對(duì)象

          interface.ensureImplements(xhr,AjaxHandler);

          //檢查對(duì)象是否實(shí)現(xiàn)了接口,從而確保以后的工作可以順利進(jìn)行

          return xhr;

          }

          延伸:

          工廠模式的本質(zhì)就是選擇器的應(yīng)用,選擇器不僅可作為對(duì)象的選擇,還可作為函數(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={};

        【javascript模式設(shè)計(jì)之工廠模式學(xué)習(xí)心得】相關(guān)文章:

        1.Java設(shè)計(jì)模式之模板方法模式

        2.常用的JavaScript模式

        3.分析JavaScript函數(shù)的調(diào)用模式

        4.對(duì)javascript嚴(yán)格模式的理解

        5.javascript 單例模式詳解及簡(jiǎn)單實(shí)例

        6.企業(yè)薪酬設(shè)計(jì)基本模式及組合模式

        7.薪酬管理之薪酬模式探究

        8.資金管理模式之現(xiàn)金池

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>