設(shè)計模式并非是難以理解, 或是難以應(yīng)用到實踐中的, 相反的, 設(shè)計模式恰恰代表了某些場景下的最佳實踐! 這些設(shè)計模式通常被有經(jīng)驗的開發(fā)者們所采用巡社。
設(shè)計模式是開發(fā)者們在開發(fā)過程中面臨的一般問題的解決方案菊值。 這些解決方案是眾多開發(fā)者們經(jīng)過長時間的實驗和錯誤所總結(jié)出來的
本文將講解前端 (javascript) 的設(shè)計模式概念!
裝飾者模式, 顧名思義, 即一個類裝飾另一個類, 其實裝飾者模式與 繼承 很類似, 但裝飾者模式能夠給不同的對象添加新行為
如下代碼: DecorateSay
裝飾了 Say
, 但與繼承不同 DecorateSay
保留了 Say
的方法
function Say(name) {
this.name = name;
}
Say.prototype.hello = function() {
return '你好,' + this.name;
}
// 裝飾類
function DecorateSay(say) {
this.say = say;
}
DecorateSay.prototype.hello = function() {
return this.say.hello() + '先生';
}
var say = new Say('mtshen');
say = new DecorateSay(say);
由此可見, 裝飾者模式比繼承更加靈活, 因此, 當(dāng)需要執(zhí)行特殊行為的時候,
調(diào)用代碼就可以根據(jù)需要有選擇地, 按順序地使用裝飾功能來包裝對象。
其他設(shè)計模式
單例模式: http://www.reibang.com/p/4c0604f116ba
構(gòu)造函數(shù)模式: http://www.reibang.com/p/cf809d980459
建造者模式: http://www.reibang.com/p/70cf4bb80549
簡單工廠模式: http://www.reibang.com/p/4293450926c2
抽象工廠模式: http://www.reibang.com/p/d6138f36e6e2
外觀模式: http://www.reibang.com/p/179ae2a13c59