最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript設(shè)計(jì)模式 – 橋接模式原理與應(yīng)用實(shí)例分析

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

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

介紹:如果軟件系統(tǒng)中某個(gè)類存在兩個(gè)或多個(gè)獨(dú)立變化的維度,可以通過橋接模式將這些維度分離出來,使兩者可以獨(dú)立擴(kuò)展,讓系統(tǒng)更符合單一職責(zé)原則。

定義:將抽象部分與其實(shí)現(xiàn)部分分離,使他們都可以獨(dú)立的變化。它是一種對(duì)象結(jié)構(gòu)型模式,又稱為柄體模式或接口模式。

場(chǎng)景:我們做一個(gè)簡單的畫圓,將圓的半徑和顏色這兩個(gè)維度進(jìn)行分離,使每一個(gè)維度都可以單獨(dú)擴(kuò)展,很多同學(xué)都說這么簡單一個(gè)需求我5行代碼就實(shí)現(xiàn)了。為什么寫這么啰嗦一套。
我們這里分享的是設(shè)計(jì)思想,當(dāng)你的系統(tǒng)足夠復(fù)雜時(shí)需要用什么樣的方式進(jìn)行優(yōu)化。作為示例,也只是用最小的例子把道理講明白,不是說所有類似的地方就必須這么寫。什么樣的場(chǎng)景需要什么樣的模式,需不需要用模式需要你自己去考量。

示例:

var CircularColor = {};
CircularColor.redCircular = function(){
  this.getColor = function(){
    return 'red';
  }
}
CircularColor.greenCircular = function(){
  this.getColor = function(){
    return 'green';
  }
}
 
var CircularRadius = {};
CircularRadius.small = function(){
  this.x = this.y = 0;
  this.radius = 5;
  this.color = null;
  this.setColor = function(circularColor){
    this.color = circularColor.getColor();
  }
  this.draw = function(){
    console.log('畫一個(gè)小圓!顏色:' + this.color + ' 原點(diǎn)坐標(biāo):x:' + this.x + ' y:' + this.y + ' 半徑:' + this.radius);
  }
}
CircularRadius.big = function(){
  this.x = this.y = 0;
  this.radius = 20;
  this.color = null;
  this.setColor = function(circularColor){
    this.color = circularColor.getColor();
  }
  this.draw = function(){
    console.log('畫一個(gè)大圓!顏色:' + this.color + ' 原點(diǎn)坐標(biāo):x:' + this.x + ' y:' + this.y + ' 半徑:' + this.radius);
  }
}
 
var color = new CircularColor.redCircular();
var radius = new CircularRadius.big();
radius.setColor(color);
radius.draw();//畫一個(gè)大圓!顏色:red 原點(diǎn)坐標(biāo):x:0 y:0 半徑:20

這節(jié)需要說一個(gè)點(diǎn),橋接模式在java的介紹里,獨(dú)立之后的維度是在抽象層會(huì)建立關(guān)聯(lián)關(guān)系,js沒有抽象層,所以兩個(gè)獨(dú)立維度通過一個(gè)setColor方法建立關(guān)聯(lián)關(guān)系。

橋接模式總結(jié):

優(yōu)點(diǎn):

* 橋接模式提高了系統(tǒng)的可擴(kuò)展性,在兩個(gè)變化維度中任意擴(kuò)展一個(gè)維度,都不需要修改原有系統(tǒng),符合開關(guān)原則。
* 多數(shù)情況下,橋接模式可以取代多層集成方案。
* 分離接口及其實(shí)現(xiàn)部分,使得實(shí)現(xiàn)可以沿著各自的維度來變化。

缺點(diǎn):

* 橋接模式的使用會(huì)增加系統(tǒng)的理解與設(shè)計(jì)難度。
* 橋接模式要求正確識(shí)別出系統(tǒng)中兩個(gè)獨(dú)立變化的維度,因此其使用范圍具有一定的局限性。

適用場(chǎng)景:

* 一個(gè)類存在兩個(gè)或多個(gè)獨(dú)立變化的維度,且這些維度都需要獨(dú)立進(jìn)行擴(kuò)展。

感興趣的朋友可以使用在線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)文章

  • 小程序?qū)崿F(xiàn)抽獎(jiǎng)動(dòng)畫

    小程序?qū)崿F(xiàn)抽獎(jiǎng)動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)抽獎(jiǎng)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • dedecms頁面如何獲取會(huì)員狀態(tài)的實(shí)例代碼

    dedecms頁面如何獲取會(huì)員狀態(tài)的實(shí)例代碼

    下面小編就為大家?guī)硪黄猟edecms頁面如何獲取會(huì)員狀態(tài)的實(shí)例代碼。一起跟隨小編過來看看吧,希望對(duì)大家有所幫助。
    2016-03-03
  • js判斷當(dāng)前瀏覽器類型,判斷IE瀏覽器方法

    js判斷當(dāng)前瀏覽器類型,判斷IE瀏覽器方法

    這篇文章主要介紹了js判斷當(dāng)前瀏覽器類型,判斷IE瀏覽器方法,需要的朋友可以參考下
    2014-06-06
  • JS動(dòng)態(tài)插入腳本和插入引用外部鏈接腳本的方法

    JS動(dòng)態(tài)插入腳本和插入引用外部鏈接腳本的方法

    js 動(dòng)態(tài)插入腳本的是在頁面加載時(shí)不存在,但將來的某一時(shí)刻通過修改該 DOM 動(dòng)態(tài)添加的腳本。接下來通過本文給大家介紹JS動(dòng)態(tài)插入腳本和插入引用外部鏈接腳本,需要的朋友可以參考下
    2018-05-05
  • 淺談下拉菜單中的Option對(duì)象

    淺談下拉菜單中的Option對(duì)象

    Option 對(duì)象代表 HTML 表單中下拉列表中的一個(gè)選項(xiàng)。在 HTML 表單中 <option> 標(biāo)簽每出現(xiàn)一次,一個(gè) Option 對(duì)象就會(huì)被創(chuàng)建。您可通過表單的 elements[] 數(shù)組訪問一個(gè) Option 對(duì)象,或者通過使用 document.getElementById()。
    2015-05-05
  • javascript-簡單的日歷實(shí)現(xiàn)及Date對(duì)象語法介紹(附圖)

    javascript-簡單的日歷實(shí)現(xiàn)及Date對(duì)象語法介紹(附圖)

    主要是對(duì)Date對(duì)象的使用,首先回憶一下Date對(duì)象的參數(shù)及方法,代碼如下,感興趣的朋友可以參考下哈
    2013-05-05
  • FF下zoom的替代方案 單位em

    FF下zoom的替代方案 單位em

    css 屬性zoom是ie私有屬性 在FF中(或者說僅實(shí)現(xiàn)CSS標(biāo)準(zhǔn)的其他瀏覽器中)無法使用,一直在網(wǎng)上搜索它的替代方案,但沒有收獲,后來聽群里有朋友說em或可解決此問題,經(jīng)過研究和測(cè)試,發(fā)現(xiàn)果然可以解決。
    2008-08-08
  • javascript動(dòng)態(tài)分頁的實(shí)現(xiàn)方法實(shí)例

    javascript動(dòng)態(tài)分頁的實(shí)現(xiàn)方法實(shí)例

    最近的項(xiàng)目需要添加一個(gè)分頁導(dǎo)航的功能,沒有用網(wǎng)上封裝好的文件,通過JS自己簡單實(shí)現(xiàn)了效果,這篇文章主要給大家介紹了關(guān)于javascript動(dòng)態(tài)分頁的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2022-06-06
  • 通過JS獲取用戶本地圖片路徑并顯示的代碼

    通過JS獲取用戶本地圖片路徑并顯示的代碼

    通過JS獲取用戶本地圖片路徑并顯示的代碼,多用于本地上傳圖片的預(yù)覽效果
    2012-02-02
  • 使用Turn.js實(shí)現(xiàn)翻書效果的完整步驟

    使用Turn.js實(shí)現(xiàn)翻書效果的完整步驟

    最近項(xiàng)目經(jīng)理我個(gè)項(xiàng)目練練手,其項(xiàng)目需求是要實(shí)現(xiàn)翻書效果,下面這篇文章主要給大家介紹了關(guān)于使用Turn.js實(shí)現(xiàn)翻書效果的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12

最新評(píng)論

阿拉善左旗| 南郑县| 永福县| 伊金霍洛旗| 永泰县| 江都市| 天长市| 西乌珠穆沁旗| 德州市| 游戏| 万盛区| 尉犁县| 延寿县| 岐山县| 宁蒗| 陈巴尔虎旗| 广宁县| 聂拉木县| 朝阳区| 平谷区| 平武县| 平山县| 尚义县| 葫芦岛市| 尤溪县| 东台市| 中江县| 中阳县| 志丹县| 河池市| 新巴尔虎左旗| 海原县| 道孚县| 大丰市| 乃东县| 宾川县| 武定县| 三都| 承德县| 安陆市| 茶陵县|