設(shè)計(jì)模式:某些固定的高效的用來(lái)解決特定需求的被總結(jié)成規(guī)范的寫代碼的形式
單例模式:
function Fn(){
if(!Fn.obj){
Fn.obj = {};
}
Fn.obj.name = "admin";
return Fn.obj;
}
var f1 = new Fn();
var f2 = new Fn();
組合模式:
組合對(duì)象,將對(duì)象組合成特定的結(jié)構(gòu)(樹形),DOM的結(jié)構(gòu)也是樹形結(jié)構(gòu),所以,組合模式一般用來(lái)操作html結(jié)構(gòu)
將多個(gè)對(duì)象按照樹形結(jié)構(gòu)組合起來(lái)之后,每個(gè)對(duì)象之間,會(huì)產(chǎn)生關(guān)系,父子級(jí)
當(dāng)操作某個(gè)父對(duì)象時(shí),它所有的子對(duì)象,實(shí)現(xiàn)所謂的批量操作
特點(diǎn):節(jié)省操作,消耗性能
策略模式:
策略:計(jì)劃,方案
提前規(guī)劃有可能會(huì)執(zhí)行的方案,將來(lái)在使用使用的時(shí)候,根據(jù)不同的情況,調(diào)取對(duì)應(yīng)的方案
觀察者模式:
發(fā)布訂閱者模式
發(fā)布者:發(fā)布信息
訂閱者(觀察者,監(jiān)聽者):接收信息
一個(gè)主題對(duì)象:
多個(gè)接收對(duì)象:
形成一個(gè)簡(jiǎn)單的廣播通信
接受者,隨時(shí)加入和離開
耦合比較低,方便查看程序結(jié)構(gòu)
抽象工廠模式:
工廠模式:原料,加工,出廠,批量創(chuàng)建具有相同特點(diǎn)的對(duì)象
抽象:將多個(gè)相同對(duì)象的共同內(nèi)容,抽象出來(lái),形成公共對(duì)象
抽象工廠模式,工作時(shí),再?gòu)倪@個(gè)公共對(duì)象身上繼承出屬性,加入其它屬性,形成真正的實(shí)例
var factory = (function(){
function car(wheel,engine){
this.wheel = wheel;
this.engine = engine;
}
return function(wheel, engine){
return new car(wheel,engine);
}
})();
var 車架子 = factory("輪胎","引擎");
MVC模式:
M:module模型,數(shù)據(jù)
V:view視圖,呈現(xiàn)方式
C:ctrl控制,控制器,中控中心
工作流程:
用戶(瀏覽器)向控制器發(fā)送指令
控制器接收到這個(gè)指令后,根據(jù)指令先去取模型中的數(shù)據(jù)
再去取對(duì)應(yīng)的視圖
將剛才在對(duì)應(yīng)的模型中拿到的數(shù)據(jù),給剛剛?cè)〉降囊晥D
由視圖做最終顯示