<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 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

    主站蜘蛛池模板: 久久e热在这里只有国产中文精品99| 国产亚洲精品无码专区| 亚洲午夜精品久久久久久人妖| 无码国内精品久久人妻麻豆按摩 | 亚洲精品无码日韩国产不卡?V| 国内精品手机在线观看视频| 亚洲欧美日韩久久精品| 国产高清在线精品一区二区| 99久久人妻无码精品系列| 亚洲精品偷拍视频免费观看| 国产精品一区在线观看你懂的| 99久久国产综合精品麻豆| 无码人妻精品一区二区三区久久 | 911亚洲精品不卡| 99久久99久久精品免费看蜜桃| 亚洲国产精品一区第二页| 青青久久精品国产免费看| 国产免费伦精品一区二区三区| 久久精品国产91久久综合麻豆自制| 久久这里只有精品18| 亚洲日韩国产精品第一页一区| 蜜桃麻豆www久久国产精品 | 久久精品蜜芽亚洲国产AV| 亚洲精品无码永久在线观看你懂的| 久久精品国产第一区二区| 国产精品久久久久乳精品爆| 四虎国产精品永久一区| 久久精品国产半推半就| 国产成人精品亚洲日本在线| 国产精品视频一区国模私拍| 97久久精品国产精品青草| 精品国产乱码久久久久久郑州公司 | 国产精品夜色视频一级区| 久久国产精品久久精品国产| 97视频在线观看这里只有精品| 国产欧美日本亚洲精品一5| 99热精品毛片全部国产无缓冲| 国产原创精品视频| 国产成人精品日本亚洲网址| 精品久久8x国产免费观看| 无码aⅴ精品一区二区三区浪潮|