1. 程式人生 > >設計模式——介面卡模式(Adapter)

設計模式——介面卡模式(Adapter)

Android中我們給ListView以及RecyclerView塞資料的時候經常會使用ArrayAdapter,BaseAdapter,RecyclerView.Adapter等各類Adapter,我們都知道他們是介面卡,那麼究竟介面卡是什麼呢?

#現實中最常見的介面卡例子:

三頭的插頭要在兩孔的插座上充電,需要一個介面卡進行轉接。

有人說買的時候直接買個三孔的插座不就行了麼?
可家裡還有電視、電腦、空調,後面還會買烤箱、投影儀,所以在插座確定的情況下又需要同時相容很多未知電器。意思就是說,需要點都找我,我只支援2孔的插頭,如果我們不合適,請找介面卡幫忙把你們轉為兩孔的(跟我談戀愛,如果不合適,請改變你自己,改變不了,找人幫你改變)。

#介面卡模式所涉及的角色:

  • 目標(Target)角色:這就是所期待得到的介面。注意:由於這裡討論的是類介面卡模式,因此目標不可以是類。

  • 源(Adapee)角色:現在需要適配的介面。

  • 介面卡(Adaper)角色:介面卡類是本模式的核心。介面卡把源介面轉換成目標介面。顯然,這一角色不可以是介面,而必須是具體類。

這裡兩孔插座為目標(Target) ,三孔插頭為源(Adapee),轉換頭就是介面卡(Adapter)了。

其實介面卡模式就是目標已然確定, 他對外貼出了張告示:他就掉用AA類的BB方法,現在來了個CC,他並沒有BB方法,那麼CC就藉助於DD,在DD中實現了目標需要的BB方法。

CC與DD有幾種配合方式:實現、組合、整合
這幾種配合方式其實就是目前的集中介面卡模式:類介面卡模式、物件介面卡模式、預設適配模式。

#類介面卡模式

這裡寫圖片描述

#物件介面卡模式

這裡寫圖片描述

相關推薦

設計模式-介面卡模式(Adapter)

概述 定義 : 將一個類的介面轉換成客戶期望的另一個介面 使原本不相容的類可以一起工作 型別 : 結構型 適用場景 已經存在的類, 它的方法和需求不匹配時(方法結果相同或相似) 不是軟體設計階段考慮的設計模式, 而是隨著軟體

重走Java設計模式——介面卡模式Adapter Pattern)

介面卡模式 定義 一個類的介面轉換成客戶希望的另外一個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 結構詳解 介面卡模式有類的介面卡模式和物件的介面卡模式兩種不同的形式。

設計模式——介面卡Adapter模式

概述   什麼是介面卡?在我們生活中的介面卡比如插頭轉換器(中標轉美標)、USB介面轉換器(type-c轉蘋果),電腦電源介面卡(交流電轉低電壓直流)等。像這種將兩者有差異的東西通過介面卡使他們成為相互適合的東西。在程式世界中,經常存在現有的程式無法直接使用,需要做適當的變換後才能使用的情況,這種

淺談Java設計模式——介面卡模式(Adapter)

一、概述         將一個類的介面轉換成客戶希望的另外一個介面。Adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。在我們的應用程式中我們可能需要將兩個不同介面的類來進行通訊,在不修改這兩個的前提下我們可能會需要某個中介軟體來完成這個銜接的過程

設計模式——介面卡模式(Adapter)

Android中我們給ListView以及RecyclerView塞資料的時候經常會使用ArrayAdapter,BaseAdapter,RecyclerView.Adapter等各類Adapter,我們都知道他們是介面卡,那麼究竟介面卡是什麼呢? #現

C++中設計模式——介面卡模式Adapter模式

介面卡 概述 介面卡模式將一個類的介面轉換成客戶希望的另外一個介面,使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 用介面卡配出棧和佇列  用順序表和連結串列適配出棧和佇列。 用介面卡適配出棧 template <class

Java設計模式 —— 介面卡模式(Adapter)

ADAPTER—在朋友聚會上碰到了一個美女Sarah,從香港來的,可我不會說粵語,她不會說普通話,只好求助於我的朋友kent了,他作為我和Sarah之間的Adapter,讓我和Sarah可以相互交談了(也不知道他會不會耍我) 介面卡(變壓器)模式:把一個類的介面變換成客戶

C#設計模式-介面卡模式Adapter Pattern)

概念 把一個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式有類的介面卡模式和物件的介面卡模式兩種形式。前者類之間的耦合度比後者高,且要求程式設計師瞭解現有元件庫中的相關元件的內部結構,所以應用相對較少些。 優缺點   優點:     1、將目標類和

23種設計模式---介面卡模式

package com.bjpowernode.demo03; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inpu

android設計模式——介面卡模式

    定義:介面卡模式就是把一個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配的而無法工作的兩個類能夠一起工作 使用場景: 系統要使用現有的類,但此類的介面不符合系統的需要,即介面不相容。 想要建立一個可以重複使用的類,用於與一些彼此之

設計模式——介面卡模式和外觀模式

介面卡模式和外觀模式 本文將分別介紹介面卡模式和外觀模式。 1、介面卡模式 1.1、定義 介面卡模式 將一個類的介面,轉換成客戶期望的另一個介面。介面卡讓原本介面不相容的類可以合作無間。 介面卡模式的定義非常易懂,就是將一個介面轉換成另一個介面,這樣一來就實現了介面的

設計模式 --- 介面卡模式

1.定義 介面卡模式把一個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。   2.使用場景 1.系統需要使用現有的類,而此類的介面不符合系統的要求,即介面不相容。 2.想要建立一個可以重複使用的類,用於與一些彼此之

Java設計模式 介面卡模式

轉載自:https://www.cnblogs.com/V1haoge/p/6479118.html   感謝原作者! 介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。 介面卡有以下三

設計模式--------介面卡模式

介面卡模式有三個重要的成員:Target(目標介面),Adaptee(源角色),Adapter(介面卡)。                  Target(目標介面):  所要轉換的期待的介面。(系

移動開發之設計模式-介面卡模式(IOS&Android)

資源 完全參照 組合模式|菜鳥教程 ,但不包括IOS程式碼 介面卡模式 介面卡模式(Adapter Pattern)是作為兩個不相容的介面之間的橋樑。這種型別的設計模式屬於結構型模式,它結合了兩個獨立介面的功能。 這種模式涉及到一個單一的類,該類負責加入獨立的或不相容的介面功能。

【IO】- IO 體系中的設計模式-介面卡模式

前言     之前的部落格說到了介面卡模式的概念和UML類圖,這次來聊下IO中的介面卡模式。 正文 IO流體系介紹     InputStreamReader 和OutputStreamWriter 類分別繼承了Reader和Writer 介面,但是

設計模式在專案架構中的最佳實踐 -- 生成器模式介面卡模式

設計模式在專案架構中的最佳實踐 – 生成器模式/介面卡模式 ​ 一年多來,做了幾個專案,雖然沒有什麼技術和業務難度,但是也不能白白浪費了自己一年的光景,除了技術也業務外,總有一些知識值得我們去總結和學習; ​ 這麼些年埋頭於苦幹,很少抽出時間來整理提高自己的綜合

設計模式-介面卡模式

     介面卡模式也是常用到的設計模式,算是一種補償模式,用來在系統後期擴充套件修改時使用,在詳細設計階段不適合使用;會先簡單介紹下介面卡模式,以及它的幾個部分,最後通過一個例子來簡單演示下; 1.定義     將一個類的介面轉換為希望的另一個介面,介面卡模式使得原來由

php設計模式 -- 介面卡模式

1.介面卡模式: 能夠將截然不同的函式介面封裝成統一的API 2.實際應用舉例,PHP的資料庫操作有mysql, mysqli, pdo3種。能夠用介面卡模式統一成一致。相似的場景還有cache介面卡,就是將memcache,redis,file,apc等不同的快取函式統一成一致的&nbs

java23種設計模式-介面卡模式

定義 介面卡模式是把一個類的介面轉換成客戶所期望的另一種介面,從而使原本不匹配而無法在一起工作的兩個類可以一起工作。 UML 角色 Target: 符合客戶端期望的介面。 Adaptee: 需要被適配的類。此類包含了客戶端想要實現的大部分功能,但並不能完