javascript設計模式 門面模式

2021-07-11 12:04:35 字數 1163 閱讀 4383

什麼是門面模式

將乙個複雜的功能簡化乙個簡單的函式呼叫,簡單的來說,我使用榨汁機榨蘋果,我只要將蘋果放進去榨汁機就可以了,不需要了解榨汁機的內部設計.這一模式提供了面向一種更大型的**體提供了乙個的更高階別的舒適的介面,隱藏了其真正的潛在複雜性,方便的開發者的呼叫.例如jquery的$(

"").val()的實現就是乙個門面模式

門面模式的作用
1.簡化介面的呼叫

2.消除類與使用它的客戶**之間的耦合 (解耦)

簡單的門面模式

在實現html元素跨瀏覽器事件監聽的實現,我們在使用這個函式時無需考慮這個瀏覽器是chrome還是ie,都可以完成對dom的監聽.

var addevent = function (ele, type, fn) 

else

if (window.attachevent)

else

}

ps:webkit核心和ie核心實現時間監聽的介面不一致

在這個例項中,我們直接可以通過變數名singleton來訪問單體

更複雜的門面模式

門面模式可以通過對一系列函式進行組合,來達到簡化api的複雜性

下面舉乙個例子(在乙個單體中實現阻止冒泡過程,和阻止預設事件)

var ded = 

else

},/**

* 阻止預設事件

*/stopdefault: function (ev)

else

},/**

* 通過乙個組合將這兩個事件,放在乙個介面中

*/stopevent: function (ev)

};

門面模式的使用場合
1.用於反覆成組出現的**

2.建立的自己的工具庫,在使用時無需考慮到瀏覽器的變化,如上例的addevent()

門面模式的好處
1.編寫一次的組合**,可以反覆的使用它

2.降低了對外部**的依賴性,為應用系統的開發增加了靈活性

3.減少了模組之間的耦合,方便對整個系統進行修改

門面模式的弊端
1.乙個可以龐大的門面模式,在使用的時候,可能會常常執行一些我們不需要的任務

JavaScript設計模式

js類設計模式一 類建構函式 function myclass 定義公共屬性 myclass.prototype 定義公共方法 myclass.prototype.methoda function myclass.prototype.methodb function 呼叫 var objclass ...

JavaScript 設計模式

1 單例模式 singleton pattern 單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式會阻止其他物件例項化其自己的單例物件的副本,從而確保所有物件都訪問唯一例項。因為類控制了...

JavaScript設計模式

設計模式是什麼?設計模式就是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。為什麼要使用設計模式?設計模式可重用 讓 更容易被他人理解 保證 可靠性,設計模式使 編制真正工程化。設計模式怎麼來的?設計模式概念是由四人幫 設計模式 可復用物件導向軟體的基礎 的四位作者 提出,總共分成了三...