欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年04月15日 08:33:20   作者:李小強(qiáng)  
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 外觀模式,結(jié)合實(shí)例形式分析了javascript外觀模式基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了javascript設(shè)計(jì)模式 – 外觀模式原理與用法。分享給大家供大家參考,具體如下:

介紹:外觀模式是一種使用頻率非常高的結(jié)構(gòu)型設(shè)計(jì)模式,它通過引入一個(gè)外觀角色來簡化客戶端與子系統(tǒng)之間的交互,為復(fù)雜的子系統(tǒng)調(diào)用提供一個(gè)統(tǒng)一的入口,隱藏系統(tǒng)復(fù)雜度,降低子系統(tǒng)與客戶端的耦合度。

定義: 為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的入口。外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

場(chǎng)景:我們還是用畫圓的方式來介紹下外觀模式。

示例:

var Rectangle = function(){
  this.draw = function(){
    console.log('畫一個(gè)矩形');
  }
}
 
var Circle = function(){
  this.draw = function(){
    console.log('畫一個(gè)圓');
  }
}
 
var Triangle = function(){
  this.draw = function(){
    console.log('畫一個(gè)三角形');
  }
}
 
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(); //畫一個(gè)矩形
shapeMaker.drawCircle(); //畫一個(gè)圓
shapeMaker.drawTriangle(); //畫一個(gè)三角形

是不是豁然開朗?其實(shí)我們?nèi)粘W畛S玫木褪峭庥^模式。我們的工具類,jquery,包括一些瀏覽器兼容,我們都會(huì)把他們封裝到一個(gè)對(duì)象里。

這就是外觀模式提倡的把復(fù)雜的操作封裝到一個(gè)簡單接口中。幾乎所有的涉及多個(gè)業(yè)務(wù)對(duì)象交互的場(chǎng)景都可以考慮使用外觀模式進(jìn)行重構(gòu)。

外觀模式總結(jié):

優(yōu)點(diǎn):
* 對(duì)客戶端屏蔽了子系統(tǒng)組件,減少了客戶端所需處理的對(duì)象數(shù)目,并且提升使用便捷度。
* 實(shí)現(xiàn)了客戶端與子系統(tǒng)之間的松耦合關(guān)系,這使得子系統(tǒng)的變化不會(huì)影響客戶端。

缺點(diǎn):
* 不能姮好的限制客戶端直接使用子系統(tǒng)類
* 如果設(shè)計(jì)不當(dāng),增加新的子系統(tǒng)可能需要修改外觀類的源代碼,違背了開關(guān)原則

適用場(chǎng)景:
* 需要對(duì)一個(gè)復(fù)雜子系統(tǒng)提供一個(gè)簡單入口時(shí)可以采用外觀模式

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JavaScript實(shí)現(xiàn)文件下載的14種方法總結(jié)大全

    JavaScript實(shí)現(xiàn)文件下載的14種方法總結(jié)大全

    在JavaScript中實(shí)現(xiàn)文件下載的功能可以通過多種方式實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)文件下載的14種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • IE6下CSS圖片緩存問題解決方法

    IE6下CSS圖片緩存問題解決方法

    ie6下如果用css圖片平鋪,會(huì)出現(xiàn)cpu短暫100%的情況,主要原因在于,ie6會(huì)重復(fù)下載圖片。
    2010-12-12
  • webpack打包并將文件加載到指定的位置方法

    webpack打包并將文件加載到指定的位置方法

    下面小編就為大家分享一篇webpack打包并將文件加載到指定的位置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 編寫更好的JavaScript條件式和匹配條件的技巧(小結(jié))

    編寫更好的JavaScript條件式和匹配條件的技巧(小結(jié))

    這篇文章主要介紹了編寫更好的JavaScript條件式和匹配條件的技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • JavaScript實(shí)現(xiàn)登錄滑塊驗(yàn)證

    JavaScript實(shí)現(xiàn)登錄滑塊驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)登錄滑塊驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • uni-app使用Vite.config.js配置文件的超詳細(xì)教程

    uni-app使用Vite.config.js配置文件的超詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于uni-app使用Vite.config.js配置文件的超詳細(xì)教程,在uniapp開發(fā)中,vue.config.js是配置webpack的關(guān)鍵文件之一,也可以說是uniapp項(xiàng)目自定義配置的中心,需要的朋友可以參考下
    2023-12-12
  • JavaScript?WeakMap的具體使用

    JavaScript?WeakMap的具體使用

    本文主要介紹了JavaScript?WeakMap的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Javascript中Array用法實(shí)例分析

    Javascript中Array用法實(shí)例分析

    這篇文章主要介紹了Javascript中Array用法,實(shí)例分析了javascript中數(shù)組的遍歷、傳值、比較等常用技巧,需要的朋友可以參考下
    2015-06-06
  • JS Promise axios 請(qǐng)求結(jié)果后面的.then() 是什么意思

    JS Promise axios 請(qǐng)求結(jié)果后面的.then() 是什么意思

    本文主要介紹了JS Promise axios 請(qǐng)求結(jié)果后面的 .then() 是什么意思,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 微信小程序API—獲取定位的詳解

    微信小程序API—獲取定位的詳解

    這篇文章主要介紹了微信小程序API獲取定位,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論