真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Javascript中怎么實(shí)現(xiàn)橋接模式

Javascript中怎么實(shí)現(xiàn)橋接模式,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

成都創(chuàng)新互聯(lián)專注于奎文企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)??木W(wǎng)站建設(shè)公司,為奎文等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

基本理論

橋接模式定義:將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。
橋接模式主要有4個(gè)角色組成:
(1)抽象類
(2)擴(kuò)充抽象類
(3)實(shí)現(xiàn)類接口
(4)具體實(shí)現(xiàn)類
根據(jù)javascript語言的特點(diǎn),我們將其簡化成2個(gè)角色:
(1)擴(kuò)充抽象類
(2)具體實(shí)現(xiàn)類
怎么去理解橋接模式呢?我們接下來舉例說明

橋接模式的實(shí)現(xiàn)

理解橋接模式的思想,關(guān)鍵是要理解其分離抽象部分和實(shí)現(xiàn)部分的思想。我們舉例進(jìn)行說明

最簡單的橋接模式

其實(shí)我們最經(jīng)常用的jQuery的each函數(shù)就是一個(gè)典型的橋接模式,我們模擬其實(shí)現(xiàn)如下:

var each = function (arr, fn) {     for (var i = 0; i < arr.length; i++) {         var val = arr[i];         if (fn.call(val, i, val, arr)) {             return false;         }     } } var arr = [1, 2, 3, 4]; each(arr, function (i, v) {     arr[i] = v * 2; })

在這個(gè)例子中,我們通過each函數(shù)循環(huán)了arr數(shù)組,別看這個(gè)例子很常見,但其中就包含了典型的橋接模式。

在這個(gè)例子中,抽象部分是each函數(shù),也就是上面說的擴(kuò)充抽象類,實(shí)現(xiàn)部分是fn,即具體實(shí)現(xiàn)類。抽象部分和實(shí)現(xiàn)部分可以獨(dú)立的進(jìn)行變化。這個(gè)例子雖然簡單,但就是一個(gè)典型的橋接模式的應(yīng)用。

插件開發(fā)中的橋接模式

橋接模式的一個(gè)適用場景是組件開發(fā)。我們平時(shí)開發(fā)組件為了適應(yīng)不同場合,組件相應(yīng)的會(huì)有許多不同維度的變化。橋接模式就可以應(yīng)用于此,將其抽象與實(shí)現(xiàn)分離,使組件的擴(kuò)展性更高。
假設(shè)我們要開發(fā)一個(gè)彈窗插件,彈窗有不同的類型:普通消息提醒,錯(cuò)誤提醒,每一種提醒的展示方式還都不一樣。這是一個(gè)典型的多維度變化的場景。首先我們定義兩個(gè)類:普通消息彈窗和錯(cuò)誤消息彈窗。

function MessageDialog(animation) {     this.animation = animation; } MessageDialog.prototype.show = function () {     this.animation.show(); } function ErrorDialog(animation) {     this.animation = animation; } ErrorDialog.prototype.show = function () {     this.animation.show(); }

這兩個(gè)類就是前面提到的抽象部分,也就是擴(kuò)充抽象類,它們都包含一個(gè)成員animation。

兩種彈窗通過show方法進(jìn)行顯示,但是顯示的動(dòng)畫效果不同。我們定義兩種顯示的效果類如下:

function LinerAnimation() { } LinerAnimation.prototype.show = function () {     console.log("it is liner"); } function EaseAnimation() { } EaseAnimation.prototype.show = function () {     console.log("it is ease"); }

這兩個(gè)類就是具體實(shí)現(xiàn)類,它們實(shí)現(xiàn)具體的顯示效果。那我們?nèi)绾握{(diào)用呢?

1 var message = new MessageDialog(new LinerAnimation());
2 message.show();
3 var error = new ErrorDialog(new EaseAnimation());
4 error.show();

看完上述內(nèi)容,你們掌握J(rèn)avascript中怎么實(shí)現(xiàn)橋接模式的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享名稱:Javascript中怎么實(shí)現(xiàn)橋接模式
本文URL:http://weahome.cn/article/ghjchj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部