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

JavaScript設計模式之適配器模式介紹

 更新時間:2014年12月28日 09:52:35   投稿:junjie  
這篇文章主要介紹了JavaScript設計模式之適配器模式介紹,適配器模式,一般是為要使用的接口,不符本應用或本系統(tǒng)使用,而需引入的中間適配層類或對象的情況,需要的朋友可以參考下

適配器模式說明

說明: 適配器模式,一般是為要使用的接口,不符本應用或本系統(tǒng)使用,而需引入的中間適配層類或對象的情況;

場景: 就好比我們買了臺手機,買回來后發(fā)現(xiàn),充電線插頭是三插頭,但家里,只有兩插頭的口的插座,怎么辦?為了方便,也有為能在任何地方都能充上電,就得去買個通用充電適配器; 這樣手機才能在自己家里充上電;不然只能放著,或跑到有這個插頭的地方充電;

實際開發(fā)環(huán)境下,由于舊的系統(tǒng),或第三方應用提供的接口,與我們定義的接口不匹配,在以面向接口編程的環(huán)境下,就無法使用這樣舊的,或第三方的接口,這時我們就使用適配類繼承待適匹配的類,并讓適配類實現(xiàn)接口的方式來引入舊的系統(tǒng)或第三方應用的接口;

這樣使用接口編程時,就可以使用這個適匹配類,來間接調用舊的系統(tǒng)或第三方應用的接口。

在 Javascript 要實現(xiàn)類似動態(tài)面向對象語言的適配器模式的代碼,可以使用到 prototype 的繼承實例來實現(xiàn);因為是基于接口約束的,但是Javascript沒有接口這號東西,我們去掉接口這一層,直接實現(xiàn)接口實現(xiàn)類 Target ,模擬類似的源碼出來;

源碼實例

1. 待適配的類及接口方法:


復制代碼 代碼如下:

function Adaptee() {
    this.name = 'Adaptee';
}
Adaptee.prototype.getName = function() {
    return this.name;
}

2. 普通實現(xiàn)類 [由于 Javascript 中沒有接口,所以就直接提供實現(xiàn)類]

復制代碼 代碼如下:

function Target() {
    this.name = 'Target';
}

Target.prototype.queryName= function() {
    return this.name;
}

3. 適配類:


復制代碼 代碼如下:

function Adapte() {
    this.name = '';
}

Adapte.prototype = new Adaptee();

Adapte.prototype.queryName = function() {
    this.getName();
}

4.使用方法:


復制代碼 代碼如下:

var local = new Target();
local.queryName(); //調用普通實現(xiàn)類

var adapte = new Adapte();
adapte.queryName(); //調用舊的系統(tǒng)或第三方應用接口;

其他說明

上面第四步,var local 以及 var adapte 類似像 Java,C# 這樣的面向對象語言中接口引用指定,如:


復制代碼 代碼如下:

interface Target {
    public String queryName();
}
//接口引用指向
Target local = new RealTarget(); //即上面 Javascript 的 Target 實現(xiàn)類
local.queryName();

//適配器
Target adapte = new Adapte();
adapte.queryName();

可見適配器類是連接接口與目標類接口的中間層;就是用來解決,需要的目標已經(jīng)存在了,但我們無法直接使用,不能跟我們的代碼定義協(xié)同使用,就得使用適器模式,適配器模式也叫轉換模式,包裝模式;

相關文章

  • 微信小程序實現(xiàn)時間選擇

    微信小程序實現(xiàn)時間選擇

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)時間選擇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Bootstrap模仿起筷首頁效果

    Bootstrap模仿起筷首頁效果

    這篇文章主要為大家詳細介紹了Bootstrap模仿起筷首頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • layui將table轉化表單顯示的方法(即table.render轉為表單展示)

    layui將table轉化表單顯示的方法(即table.render轉為表單展示)

    今天小編就為大家分享一篇layui將table轉化表單顯示的方法(即table.render轉為表單展示),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript實現(xiàn)星星等級評價功能

    JavaScript實現(xiàn)星星等級評價功能

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)星星等級評價功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 原生JS實現(xiàn)匯率轉換功能代碼實例

    原生JS實現(xiàn)匯率轉換功能代碼實例

    這篇文章主要介紹了原生JS實現(xiàn)匯率轉換功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 深入了解最常用的JavaScript 事件

    深入了解最常用的JavaScript 事件

    這篇文章主要為大家介紹了JavaScript 事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項

    springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項

    在使用easyUI做前端樣式展示時,遇到了文件上傳的問題,而且是在彈出層中提交表單,想做到不刷新頁面,所以選擇了使用ajaxFileUpload插件。下面通過本文給大家分享springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項,需要的朋友參考下吧
    2017-04-04
  • 使用window.print()前端實現(xiàn)網(wǎng)頁打印超詳細教程(含代碼示例)

    使用window.print()前端實現(xiàn)網(wǎng)頁打印超詳細教程(含代碼示例)

    前端實現(xiàn)打印功能的方法有很多,大家在網(wǎng)上隨便一搜就是一大堆,下面這篇文章主要給大家介紹了關于使用window.print()前端實現(xiàn)網(wǎng)頁打印的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • JavaScript頁面倒計時功能完整示例

    JavaScript頁面倒計時功能完整示例

    這篇文章主要介紹了JavaScript頁面倒計時功能,結合完整實例形式分析了javascript計時器、時間運算相關操作技巧,需要的朋友可以參考下
    2019-05-05
  • JavaScript編程的10個實用小技巧

    JavaScript編程的10個實用小技巧

    盡管我使用Javascript來做開發(fā)有很多年了,但它常有一些讓我很驚訝的小特性。對于我來說,Javascript是需要持續(xù)不斷的學習的。
    2014-04-04

最新評論

宾川县| 鄂尔多斯市| 读书| 赤峰市| 新竹市| 保康县| 墨江| 会理县| 大丰市| 清涧县| 宁津县| 鲁甸县| 乌兰察布市| 乌兰浩特市| 离岛区| 栾川县| 江北区| 紫云| 昌邑市| 左贡县| 杂多县| 青海省| 酒泉市| 印江| 石嘴山市| 霸州市| 沁源县| 肃宁县| 民乐县| 靖州| 顺平县| 翁牛特旗| 东乌珠穆沁旗| 西平县| 洮南市| 历史| 四川省| 扬州市| 舟曲县| 花垣县| 南皮县|