什么是外觀模式
本段內(nèi)容來自于 JAdam博客
有些人可能炒過股票,但其實(shí)大部分人都不太懂,這種沒有足夠了解證券知識(shí)的情況下做股票是很容易虧錢的,剛開始炒股肯定都會(huì)想,如果有個(gè)懂行的幫幫手就好,其實(shí)基金就是個(gè)好幫手,支付寶里就有許多的基金,它將投資者分散的資金集中起來,交由專業(yè)的經(jīng)理人進(jìn)行管理,投資于股票、債券、外匯等領(lǐng)域,而基金投資的收益歸持有者所有,管理機(jī)構(gòu)收取一定比例的托管管理費(fèi)用。
其實(shí)本篇要說的這個(gè)設(shè)計(jì)模式就和這很有關(guān)系,由于當(dāng)投資者自己買股票時(shí),由于眾多投資者對(duì)眾多股票的聯(lián)系太多,反而不利于操作,這在軟件中就成為耦合性太高,而有了基金后,就變成眾多用戶只和基金打交道,關(guān)心基金的上漲和下跌,而實(shí)際上的操作確是基金經(jīng)理人與股票和其它投資產(chǎn)品打交道,這就是外觀模式。
介紹
- 為子系統(tǒng)中的一組接口提供了一個(gè)高級(jí)接口
-
使用者使用這個(gè)高級(jí)接口
看完后應(yīng)該有一點(diǎn)印象,在看看這張圖片就理解了
外觀模式.png
如果沒有這個(gè)高級(jí)接口,我們的代碼鏈接可能很混亂難維護(hù)。
外觀模式在結(jié)合業(yè)務(wù)的場(chǎng)景中很常用。
UML類圖

uml_facade.png
場(chǎng)景
下面的列子就是一種簡(jiǎn)單的外觀模式
function bindEvent(elem, type, selector, fn) {
if ( fn == null) {
fn = selector
selector = null
}
// *****
}
// 調(diào)用
bindEvent(elem, 'click', '#div1', fn)
bindEvent(elem, 'click', fn)
設(shè)計(jì)原則驗(yàn)證
不符合單一職責(zé)原則和開放封閉原則,因此要注意謹(jǐn)慎使用,不可濫用
- 本文資料來自慕課網(wǎng)-雙越老師-Javascript 設(shè)計(jì)模式系統(tǒng)講解與應(yīng)用視頻課程。
