成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript設(shè)計(jì)模式系列五:適配器模式

banana_pi / 1456人閱讀

摘要:什么是適配器模式所謂適配器模式就是用一個(gè)新的接口對(duì)現(xiàn)有的接口進(jìn)行包裝,處理類與的不匹配。對(duì)象適配器可以適配它的父對(duì)象接口方法或?qū)傩?。裝飾者模式增強(qiáng)了對(duì)象的功能而同時(shí)又不改變它的接口,因此它對(duì)程序的透明度比適配器要好。

什么是適配器模式

所謂 適配器模式 就是用一個(gè)新的接口對(duì)現(xiàn)有的接口進(jìn)行包裝,處理類與API的不匹配。使用這種模式的對(duì)象又叫作包裝器。
比如我們有一個(gè)接口:

function api (x1, x2, x3) {
  console.log(x1 + x2 + x3);  // 用console.log來模擬接口的相關(guān)操作
}

然后我們有一個(gè)對(duì)象數(shù)據(jù):

var obj = {
  a: "我",
  b: "很",
  c: "帥"
}

我們可以發(fā)現(xiàn),我們的數(shù)據(jù)和接口的參數(shù)是不匹配的,無法直接參入obj調(diào)用該api。
這時(shí)候怎么辦呢?我們可以定義一個(gè)適配器函數(shù):

function adapter (o) {
  // 通過適配器函數(shù)來調(diào)用目的api
  api(o.a, o.b, o.c);
} 

adapter(obj);
// 我很帥

這樣,通過適配器函數(shù) adapter() 我們就可以直接傳入obj來調(diào)用api了,類與api的不匹配問題就引刃而解了。

總結(jié)

適配器模式就是用一個(gè)新的接口對(duì)現(xiàn)有的接口進(jìn)行包裝,處理類與API的不匹配。使用這種模式的對(duì)象又叫作包裝器。
適用情況

使用一個(gè)已經(jīng)存在的對(duì)象,但其方法或?qū)傩越涌诓环衔覀兊囊蟆?/p>

想要?jiǎng)?chuàng)建一個(gè)可復(fù)用對(duì)象,該對(duì)象可以與其他不相關(guān)的對(duì)象或不可見的對(duì)象協(xié)同工作

想使用的對(duì)象已經(jīng)存在,但是不能對(duì)每一個(gè)都進(jìn)行原型繼承以匹配它的接口。對(duì)象適配器可以適配它的父對(duì)象接口方法或?qū)傩浴?/p>

與其他模式的區(qū)別

適配器和橋接器雖然類似,但橋接的出發(fā)點(diǎn)不同,橋接的目的是將接口部分和實(shí)現(xiàn)部分分離,從而對(duì)他們可以更容易的更獨(dú)立的加以改變。

裝飾者模式增強(qiáng)了對(duì)象的功能而同時(shí)又不改變它的接口,因此它對(duì)程序的透明度比適配器要好。

代理模式再不改變它的接口條件下,為另一接口定義一個(gè)代理。

門面模式是為了簡化一個(gè)接口,不提供額外額選擇。

適配器則要把一個(gè)接口轉(zhuǎn)換為另一個(gè)接口,并不會(huì)濾除某些能力也不會(huì)簡化接口。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107459.html

相關(guān)文章

  • 編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總

    摘要:如果看不懂的話,可以在評(píng)論區(qū)中提問,我會(huì)第一時(shí)間回答你無論何時(shí)我一直都在嗯哼該文章屬于編程中的那些經(jīng)典套路設(shè)計(jì)模式匯總系列 在正式閱讀前,我先談?wù)勎覀冊撚檬裁醋藙莺托膽B(tài)學(xué)習(xí)設(shè)計(jì)模式: 如果你還沒有過多的編程經(jīng)驗(yàn)(泛指半年以下),我建議你把它當(dāng)做小說來看,能看懂多少是多少,因?yàn)榘肽暌韵陆?jīng)驗(yàn)的程序員用到設(shè)計(jì)模式的情況只會(huì)出現(xiàn)在面試上,至于實(shí)際工作中?相對(duì)來說這部分不會(huì)由你負(fù)責(zé)。 如果你已...

    youkede 評(píng)論0 收藏0
  • 聽飛狐聊JavaScript設(shè)計(jì)模式系列10

    摘要:本回內(nèi)容介紹上一回,聊了代理模式,虛擬代理,圖片懶加載,介一回,也比較容易,適配器模式,用一個(gè)新的接口對(duì)現(xiàn)有類的接口進(jìn)行包裝,處理類與的不匹配。這一回,主要聊了適配器模式,圖片預(yù)加載,主要還是理解下一回,聊一聊橋接模式,順便做一做計(jì)算題。 本回內(nèi)容介紹 上一回,聊了代理模式,虛擬代理,圖片懶加載,介一回,也比較容易,適配器模式(Adapter),用一個(gè)新的接口對(duì)現(xiàn)有類的接口進(jìn)行包裝,處...

    yexiaobai 評(píng)論0 收藏0
  • 大前端 - 收藏集 - 掘金

    摘要:是目前唯一一個(gè)支持同步調(diào)用的跨平臺(tái)年度上最多的個(gè)項(xiàng)目前端掘金年接近尾聲,在最近的幾篇文章中,會(huì)整理總結(jié)一些年度開源項(xiàng)目。 JS 全棧教程 - 前端 - 掘金本課程是基于阮一峰的 js 全棧教程的視頻版本,免費(fèi)供大家觀看... 2016 年 10 個(gè)最佳的 CodePen 作品 - 前端 - 掘金說到 CodePen,前端開發(fā)者們肯定不會(huì)陌生。如果說 Dribbble 是設(shè)計(jì)師們聚集的圣...

    honhon 評(píng)論0 收藏0
  • JavaScript設(shè)計(jì)模式系列八:外觀模式

    摘要:外觀模式外觀模式是指提供一個(gè)統(tǒng)一的接口去訪問多個(gè)子系統(tǒng)的多個(gè)不同的接口,為子系統(tǒng)中的一組接口提供統(tǒng)一的高層接口。外觀模式在我們的日常工作中十分常見。 外觀模式 外觀模式是指提供一個(gè)統(tǒng)一的接口去訪問多個(gè)子系統(tǒng)的多個(gè)不同的接口,為子系統(tǒng)中的一組接口提供統(tǒng)一的高層接口。使得子系統(tǒng)更容易使用,不僅簡化類中的接口,而且實(shí)現(xiàn)調(diào)用者和接口的解耦。外觀模式在我們的日常工作中十分常見。 我們來看一個(gè)例子...

    tianren124 評(píng)論0 收藏0
  • 從ES6重新認(rèn)識(shí)JavaScript設(shè)計(jì)模式(四): 配器模式

    摘要:什么是適配器模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。中的適配器模式在前端項(xiàng)目中,適配器模式的使用場景一般有以下三種情況庫的適配參數(shù)的適配和數(shù)據(jù)的適配。 1 什么是適配器模式 適配器模式(Adapter):將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 在...

    URLOS 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<