外觀模式(門面模式),是一種相對簡單而又無處不在的模式。外觀模式提供一個高層接口,這個接口使得客戶端或子系統(tǒng)更加方便調用。
用一段再簡單不過的代碼來表示:
var getName = function(){
return ”svenzeng”
}
var getSex = function(){
return ‘man'
}
如果你需要分別調用getName和getSex函數. 那可以用一個更高層的接口getUserInfo來調用.
var getUserInfo = function(){
var info = a() + b();
return info;
}
答案是顯而易見的,飯?zhí)玫某床藥煾挡粫驗槟泐A定了一份燒鴨和一份白菜就把這兩樣菜炒在一個鍋里。他更愿意給你提供一個燒鴨飯?zhí)撞汀M瑯釉诔绦蛟O計中,我們需要保證函數或者對象盡可能的處在一個合理粒度,畢竟不是每個人喜歡吃燒鴨的同時又剛好喜歡吃白菜。
外觀模式還有一個好處是可以對用戶隱藏真正的實現細節(jié),用戶只關心最高層的接口。比如在燒鴨飯?zhí)撞偷墓适轮校悴⒉魂P心師傅是先做燒鴨還是先炒白菜,你也不關心那只鴨子是在哪里成長的。
最后寫個我們都用過的外觀模式例子:
var stopEvent = function( e ){ //同時阻止事件默認行為和冒泡
e.stopPropagation();
e.preventDefault();
}