摘要:什么是適配器模式所謂適配器模式就是用一個新的接口對現有的接口進行包裝,處理類與的不匹配。對象適配器可以適配它的父對象接口方法或屬性。裝飾者模式增強了對象的功能而同時又不改變它的接口,因此它對程序的透明度比適配器要好。
什么是適配器模式
所謂 適配器模式 就是用一個新的接口對現有的接口進行包裝,處理類與API的不匹配。使用這種模式的對象又叫作包裝器。
比如我們有一個接口:
function api (x1, x2, x3) { console.log(x1 + x2 + x3); // 用console.log來模擬接口的相關操作 }
然后我們有一個對象數據:
var obj = { a: "我", b: "很", c: "帥" }
我們可以發現,我們的數據和接口的參數是不匹配的,無法直接參入obj調用該api。
這時候怎么辦呢?我們可以定義一個適配器函數:
function adapter (o) { // 通過適配器函數來調用目的api api(o.a, o.b, o.c); } adapter(obj); // 我很帥
這樣,通過適配器函數 adapter() 我們就可以直接傳入obj來調用api了,類與api的不匹配問題就引刃而解了。
總結適配器模式就是用一個新的接口對現有的接口進行包裝,處理類與API的不匹配。使用這種模式的對象又叫作包裝器。
適用情況
使用一個已經存在的對象,但其方法或屬性接口不符合我們的要求。
想要創建一個可復用對象,該對象可以與其他不相關的對象或不可見的對象協同工作
想使用的對象已經存在,但是不能對每一個都進行原型繼承以匹配它的接口。對象適配器可以適配它的父對象接口方法或屬性。
與其他模式的區別
適配器和橋接器雖然類似,但橋接的出發點不同,橋接的目的是將接口部分和實現部分分離,從而對他們可以更容易的更獨立的加以改變。
裝飾者模式增強了對象的功能而同時又不改變它的接口,因此它對程序的透明度比適配器要好。
代理模式再不改變它的接口條件下,為另一接口定義一個代理。
門面模式是為了簡化一個接口,不提供額外額選擇。
適配器則要把一個接口轉換為另一個接口,并不會濾除某些能力也不會簡化接口。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107459.html
摘要:如果看不懂的話,可以在評論區中提問,我會第一時間回答你無論何時我一直都在嗯哼該文章屬于編程中的那些經典套路設計模式匯總系列 在正式閱讀前,我先談談我們該用什么姿勢和心態學習設計模式: 如果你還沒有過多的編程經驗(泛指半年以下),我建議你把它當做小說來看,能看懂多少是多少,因為半年以下經驗的程序員用到設計模式的情況只會出現在面試上,至于實際工作中?相對來說這部分不會由你負責。 如果你已...
摘要:本回內容介紹上一回,聊了代理模式,虛擬代理,圖片懶加載,介一回,也比較容易,適配器模式,用一個新的接口對現有類的接口進行包裝,處理類與的不匹配。這一回,主要聊了適配器模式,圖片預加載,主要還是理解下一回,聊一聊橋接模式,順便做一做計算題。 本回內容介紹 上一回,聊了代理模式,虛擬代理,圖片懶加載,介一回,也比較容易,適配器模式(Adapter),用一個新的接口對現有類的接口進行包裝,處...
摘要:是目前唯一一個支持同步調用的跨平臺年度上最多的個項目前端掘金年接近尾聲,在最近的幾篇文章中,會整理總結一些年度開源項目。 JS 全棧教程 - 前端 - 掘金本課程是基于阮一峰的 js 全棧教程的視頻版本,免費供大家觀看... 2016 年 10 個最佳的 CodePen 作品 - 前端 - 掘金說到 CodePen,前端開發者們肯定不會陌生。如果說 Dribbble 是設計師們聚集的圣...
摘要:外觀模式外觀模式是指提供一個統一的接口去訪問多個子系統的多個不同的接口,為子系統中的一組接口提供統一的高層接口。外觀模式在我們的日常工作中十分常見。 外觀模式 外觀模式是指提供一個統一的接口去訪問多個子系統的多個不同的接口,為子系統中的一組接口提供統一的高層接口。使得子系統更容易使用,不僅簡化類中的接口,而且實現調用者和接口的解耦。外觀模式在我們的日常工作中十分常見。 我們來看一個例子...
摘要:什么是適配器模式適配器模式將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。中的適配器模式在前端項目中,適配器模式的使用場景一般有以下三種情況庫的適配參數的適配和數據的適配。 1 什么是適配器模式 適配器模式(Adapter):將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 在...
閱讀 3575·2021-11-24 10:19
閱讀 3709·2021-09-30 09:47
閱讀 1282·2019-08-30 15:56
閱讀 780·2019-08-29 15:11
閱讀 893·2019-08-29 13:43
閱讀 3556·2019-08-28 18:25
閱讀 2149·2019-08-26 13:27
閱讀 1427·2019-08-26 11:44