javascript設(shè)計模式 – 外觀模式原理與用法實例分析
本文實例講述了javascript設(shè)計模式 – 外觀模式原理與用法。分享給大家供大家參考,具體如下:
介紹:外觀模式是一種使用頻率非常高的結(jié)構(gòu)型設(shè)計模式,它通過引入一個外觀角色來簡化客戶端與子系統(tǒng)之間的交互,為復(fù)雜的子系統(tǒng)調(diào)用提供一個統(tǒng)一的入口,隱藏系統(tǒng)復(fù)雜度,降低子系統(tǒng)與客戶端的耦合度。
定義: 為子系統(tǒng)中的一組接口提供一個統(tǒng)一的入口。外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。
場景:我們還是用畫圓的方式來介紹下外觀模式。
示例:
var Rectangle = function(){
this.draw = function(){
console.log('畫一個矩形');
}
}
var Circle = function(){
this.draw = function(){
console.log('畫一個圓');
}
}
var Triangle = function(){
this.draw = function(){
console.log('畫一個三角形');
}
}
var ShapeMaker = function(){
this.rectangle = new Rectangle();
this.circle = new Circle();
this.triangle = new Triangle();
this.drawRectangle = function(){
this.rectangle.draw();
}
this.drawCircle = function(){
this.circle.draw();
}
this.drawTriangle = function(){
this.triangle.draw();
}
}
var shapeMaker = new ShapeMaker();
shapeMaker.drawRectangle(); //畫一個矩形
shapeMaker.drawCircle(); //畫一個圓
shapeMaker.drawTriangle(); //畫一個三角形
是不是豁然開朗?其實我們?nèi)粘W畛S玫木褪峭庥^模式。我們的工具類,jquery,包括一些瀏覽器兼容,我們都會把他們封裝到一個對象里。
這就是外觀模式提倡的把復(fù)雜的操作封裝到一個簡單接口中。幾乎所有的涉及多個業(yè)務(wù)對象交互的場景都可以考慮使用外觀模式進(jìn)行重構(gòu)。
外觀模式總結(jié):
優(yōu)點:
* 對客戶端屏蔽了子系統(tǒng)組件,減少了客戶端所需處理的對象數(shù)目,并且提升使用便捷度。
* 實現(xiàn)了客戶端與子系統(tǒng)之間的松耦合關(guān)系,這使得子系統(tǒng)的變化不會影響客戶端。
缺點:
* 不能姮好的限制客戶端直接使用子系統(tǒng)類
* 如果設(shè)計不當(dāng),增加新的子系統(tǒng)可能需要修改外觀類的源代碼,違背了開關(guān)原則
適用場景:
* 需要對一個復(fù)雜子系統(tǒng)提供一個簡單入口時可以采用外觀模式
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- JS設(shè)計模式之訪問者模式定義與用法分析
- javascript設(shè)計模式 – 模板方法模式原理與用法實例分析
- javascript設(shè)計模式 – 觀察者模式原理與用法實例分析
- javascript設(shè)計模式 – 狀態(tài)模式原理與用法實例分析
- javascript設(shè)計模式 – 策略模式原理與用法實例分析
- javascript設(shè)計模式 – 備忘錄模式原理與用法實例分析
- javascript設(shè)計模式 – 中介者模式原理與用法實例分析
- javascript設(shè)計模式 – 命令模式原理與用法實例分析
- javascript設(shè)計模式 – 裝飾模式原理與應(yīng)用實例分析
- javascript設(shè)計模式 – 組合模式原理與應(yīng)用實例分析
- JS中間件設(shè)計模式的深入探討與實例分析
- javascript設(shè)計模式 – 訪問者模式原理與用法實例分析
相關(guān)文章
Auntion-TableSort國人寫的一個javascript表格排序的東西
Auntion-TableSort國人寫的一個javascript表格排序的東西...2007-11-11
HTML+JavaScript模擬實現(xiàn)簡單的時鐘效果
在這篇文章中,主要將向大家展示如何使用?HTML、CSS?和?JavaScript代碼制作模擬時鐘,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-08-08
JavaScript函數(shù)封裝隨機(jī)顏色驗證碼(完整代碼)
這篇文章主要介紹了JavaScript函數(shù)封裝隨機(jī)顏色驗證碼(完整代碼),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12

