亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

JavaScript

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

時(shí)間:2024-10-08 06:33:56 JavaScript 我要投稿
  • 相關(guān)推薦

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

  模式類(lèi)型:工廠模式

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

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

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

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

  關(guān)鍵點(diǎn):以 函數(shù)/類(lèi)/子類(lèi) 構(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;

  }

  }

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

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

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

  MainClass.prototype={

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

  }

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

  復(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ù)的選擇,類(lèi)的選擇,參數(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);

  }

  }

  })();//避免多次判斷

  類(lèi)的選擇:

  復(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)文章:

京東商城的物流模式06-26

項(xiàng)目管理模式的創(chuàng)新06-25

鄉(xiāng)村旅游發(fā)展思路及模式04-10

ps的顏色模式有哪些09-27

商業(yè)模式是什么07-11

資本運(yùn)作模式的講解01-14

員工激勵(lì)模式的方法與建議09-04

資本運(yùn)作模式分類(lèi)04-28

PS混合模式選項(xiàng)說(shuō)明01-03

PPT怎么設(shè)置切換放映模式12-07