国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-21 00:32:44
字體:
來源:轉載
供稿:網(wǎng)友
模式類型:工廠模式

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

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

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

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

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

一般使用形式:

作為獨立的選擇器存在:

復制代碼 代碼如下:

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();
}//如果此時網(wǎng)絡不可用,創(chuàng)建可緩存AJAX對象
else if(this.isHightLatency()){
xhr= new QueuedHandler();
}//如果網(wǎng)絡延遲較大,創(chuàng)建隊列形式AJAX對象
else {
xhr=new SimpleHandler();
}//如果網(wǎng)絡正常,創(chuàng)建簡單AJAX對象
interface.ensureImplements(xhr,AjaxHandler);
//檢查對象是否實現(xiàn)了接口,從而確保以后的工作可以順利進行
return xhr;
}

延伸:

工廠模式的本質就是選擇器的應用,選擇器不僅可作為對象的選擇,還可作為函數(shù)的選擇,類的選擇,參數(shù)的選擇

函數(shù)的選擇,如:
復制代碼 代碼如下:

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

參數(shù)的選擇:

復制代碼 代碼如下:

function Country(country){
if(country=="China")
this.config={};//設置基本參數(shù)1
else if(contry=="America")
this.config={};//設置參數(shù)2
else if()
.......//等等
}
Country.prototype={};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 视频| 四川省| 大同市| 铜梁县| 吴堡县| 麻城市| 台前县| 隆林| 樟树市| 巴马| 扎兰屯市| 连州市| 三江| 涞水县| 长乐市| 松溪县| 普兰店市| 文水县| 威海市| 霍州市| 沙田区| 海丰县| 铁岭市| 雅安市| 通山县| 邯郸县| 凌海市| 防城港市| 九台市| 前郭尔| 浑源县| 昂仁县| 西安市| 千阳县| 驻马店市| 巴青县| 台江县| 亳州市| 文山县| 安达市| 枣阳市|