国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

javascript設(shè)計模式 ? 外觀模式原理與用法實例分析

瀏覽:8日期:2023-11-04 08:38:05

本文實例講述了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)的變化不會影響客戶端。

缺點:* 不能??玫南拗瓶突Ф酥苯郵褂米酉低忱?br>* 如果設(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è)計有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 壶关县| 米脂县| 剑河县| 荆门市| 靖远县| 讷河市| 苏尼特左旗| 伊吾县| 翁源县| 苏尼特左旗| 广东省| 桐庐县| 原平市| 夏邑县| 深圳市| 德保县| 东乌珠穆沁旗| 嘉禾县| 新乐市| 封丘县| 育儿| 红安县| 青海省| 达尔| 余姚市| 探索| 长汀县| 通渭县| 班玛县| 临江市| 和静县| 织金县| 新龙县| 南澳县| 滦南县| 琼海市| 榆社县| 佛冈县| 万载县| 乌兰县| 大兴区|