設計模式之適配器模式(Java實現)

2020-12-16 Java猿猿
設計模式之適配器模式(Java實現)

小王正在和美女聊天,突然接到領導電話,要讓會議室投影匯報項目情況,只能暫時離開美女去了會議室,到了會議室,發現投影儀的接口和自己電腦中的接口不匹配。因此小王慌忙去找人借了個轉換器,把投影儀的接口轉成了自己電腦能用的接口,現在終於可以投影了。這個在設計模式中就是適配器模式。

適配器模式(Adapter Pattern):將一個類的接口變換成客戶端所期待的另一個接口,從而是原本因為接口不匹配而無法在一起工作的兩個類能夠在一起工作。

適配器模式的通用類圖如下:

適配器模式的通用類圖

其中的幾個角色解釋如下:

1、Target目標角色,就是我們期待的接口

2、Adaptee源角色,就是我們需要轉換的角色,

3、Adpater適配器角色,就是我們的核心角色,主要把源接口轉成目標接口。

適配器模式通用代碼

適配器模式的優缺點:

1、優點:增加了類的透明性和復用性,使得適配器的靈活性更強。

2、缺點:一次最多只能適配一個適配者類,而且目標抽象類只能為接口,不能為類,其使用有一定的局限性,不能將一個適配者類和他的子類同時適配到目標接口。

相關焦點

  • java設計模式之適配器模式
    適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬於結構型模式,它結合了兩個獨立接口的功能。這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能。
  • 深度好文:設計模式之——適配器模式
    今天給大家分享一下設計模式中的「適配器模式」。基本介紹適配器模式屬於「結構型模式」的一種。適配器模式的工作原理就是:用戶調用適配器轉換出來的接口,適配器在調用被適配類的相關接口,從而完成適配。通過不同的實現方式,我們可以將其分成三類:類適配器模式,對象適配器模式,接口適配器模式。
  • Java設計模式之適配器模式和橋接模式詳細解析
    現在則來學習下結構型模式的適配器模式和橋接模式。適配器模式 適配器模式主要有兩種類型,一種是類適配器模式,主要通過繼承來實現適配器功能;一種是對象適配器模式,通過組合來實現適配器功能。 這兩種適配器模式中,都實現了該功能,不過在這裡推薦使用對象適配器模式,相比類適配器模式,它更加靈活,也符合設計原則中的合成復用原則: 儘量使用合成/聚合的方式,而不是使用繼承。適配器模式的優點: 提升了類的復用和靈活度。
  • 「原創」讓設計模式飛一會兒|⑦適配器模式
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫大家好,我是高冷就是範兒,好久不見。過了一個光棍節,人相當懶散,一時沒啥靈感,文章更新速度較慢,抱歉。今天我們繼續來聊設計模式這個話題。
  • 程式設計師必備設計模式之適配器模式
    昨天是1024程式設計師節,特地停更一天,今天我們來講一個簡單的設計模式,適配器模式。適配器模式,它是一個結構性的設計模式。在我們的生活中,總是有各種各樣的適配器,最常見的,就是你去國外旅遊的時候,通常需要購買轉接插座,因為國內的插座與國外的標準不同,接口不同,你需要一個轉換器。當你使用這個轉換器的時候,你不用關心裏面是如何工作的,只需要關心插頭從什麼標準轉成什麼標準,而不需要關心轉化器如何實現,這便是適配器。
  • Java-今天學學適配器(Adaptor)設計模式
    1.適配器(Adaptor)設計模式1.1.生活中的適配電腦電源適配器:將電腦不能直接使用的220v交流電, 轉換 成電腦可以直接使用的20v直流電;1.2.適配器模式>適配器,主要就是將原本不能或者不方便直接使用的東西,轉換成可以直接或者方便使用的東西;1.3.Java中的適配在Java中,根據適配對象的不同,可以將適配器分為三類:類的適配;接口的適配;對象的適配;
  • 設計模式結構性:適配器模式(AdapterPattern)
    適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬於結構型模式,它結合了兩個獨立接口的功能。 這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能。舉個真實的例子,讀卡器是作為內存卡和筆記本之間的適配器。
  • 設計模式的解釋:使用代碼示例的適配器模式
    設計模式提供了一種可靠和簡單的方法來遵循經過驗證的設計原則,並編寫結構良好且可維護的代碼。適配器模式是面向對象軟體開發中流行和常用的模式之一。它遵循Robert C. Martin的依賴倒置原則,並使您可以重用現有的類,即使它不實現預期的接口。
  • 大神詳解,這麼詳細的Java設計模式不收藏可惜了
    為什麼再看一遍設計模式,主要有幾個原因:***,很多優秀的源碼基本都使用了設計模式,明確設計模式能夠更好的看源碼。第二,很多中間件設計理念也是基於設計模式的,還有其他的語言,都有自己的設計優秀實踐。對於我來說,設計模式始於java,不止於java。第三,有了這種規範,可以更好的和他人溝通,言簡意賅。
  • 從Java類庫看設計模式
    其實設計模式的思想現在應用的如此廣泛,無論在什麼樣的設計中,只要稍微大一點的設計,都可以找到很多很多設計模式的蹤跡,或者說都不可避免的用到設計模式。下面所講的設計模式,大部分都是GOF的那部經典中出現過的23個模式,然而,還有一些,比如MVC,並不屬於那裡。
  • java 23種設計模式及其在spring,tomcat,jdk中的應用
    設計模式是前人(一般都是大師)對程序設計經驗的總結,學習並應用設計模式可以使我們開發的項目更加規範、便於擴展和維護,這大概是為什麼設計模式基本是面試必問的原因吧!本文主要內容有四部分:設計原則、設計模式分類、23種設計模式、設計模式應用。設計模式雖多,但重要的、主流開源框架應用較多的往往就那幾個。
  • Java設計模式:三大類工廠方法模式
    GOF在《設計模式》一書中將工廠模式分為兩類:工廠方法模式(Factory Method)與抽象工廠模式(Abstract Factory)。將簡單工廠模式(Simple Factory)看為工廠方法模式的一種特例,兩者歸為一類。  二、簡單工廠模式  簡單工廠模式又稱靜態工廠方法模式。重命名上就可以看出這個模式一定很簡單。
  • 使用Java API在Jedis中實現DAO設計模式
    在本文中,我們將學習Jedis Java客戶端中的DAO設計模式和實現。DAO模式被實現為客戶端應用程式和資料庫之間的一層。客戶端應用程式不必依賴基礎資料庫交互API(低級)。Redis and Jedis在 Windows 上安裝 Redis在 Windows 上安裝 Eclipse創建 Maven 項目創建 SiteDaoRedisImplTest.java
  • 常用的Java設計模式
    本文總結了幾個大家常用的Java設計模式,並給出代碼示例。1、單例模式單例(Singleton)模式的定義:指一個類只有一個實例,且該類能自行創建這個實例的一種模式。在並發測試中,單例模式不利於代碼調試。在調試過程中,如果單例中的代碼沒有執行完,也不能模擬生成一個新的對象。單例模式的功能代碼通常寫在一個類中,如果功能設計不合理,則很容易違背單一職責原則。單例模式的實現單例模式的構造器是被private修飾的,一般通過getInstance()的方法來獲取實例。
  • 重學Java 設計模式:實戰外觀模式
    HelloWorldController.java以上的實現是模擬一個Api接口類,在裡面添加白名單功能,但類似此類的接口會有很多都需要修改,所以這也是不推薦使用此種方式的重要原因。如果你日常對待此類需求經常是這樣開發,那麼可以按照此設計模式進行優化你的處理方式,讓後續的擴展和摘除更加容易。六、外觀模式重構代碼接下來使用外觀器模式來進行代碼優化,也算是一次很小的重構。
  • 設計模式之策略模式(Java實現例子說明)
    設計模式之策略模式小王在和同事正在吹牛時,領導過來了,小王啊,你又在吹牛了?別吹了,幹點正活,下周要去春遊,你給出幾種方案。小王一聽去旅遊,屁顛屁顛地去幹活了。這個其實就是一個設計模式,叫做策略模式。策略模式(Strategy Pattern):定義一組算法,將每個算法封裝起來,並且使他們之間可以互換。策略模式是一個簡單的模式也叫做政策模式。
  • Java門面模式(或外觀模式)
    門面模式(或外觀模式)隱藏系統的複雜性,並為客戶端提供一個客戶端可以訪問系統的接口。 這種類型的設計模式屬於結構模式,因為此模式為現有系統添加了一個接口以隱藏其複雜性。門面模式涉及一個類,它提供客戶端所需的簡化方法和委託調用現有系統類的方法。實現實例在這個實例中將創建一個Shape接口並實現Shape接口的具體類。在下一步中,將定義一個Facade類ShapeMaker,請在下一步中參考其代碼。
  • 常用的設計模式之橋接模式(Java代碼實現)
    有點類似於全球貿易分工明確的思想,這就是橋接模式,把兩個不同維度的東西橋接起來。一、認識橋接模式1、概念將抽象部分與它實現部分分離,使它們都可以獨立地變化。2、例子說明從上面的例子我們可以看到,我們的手機可以從兩個維度進行變化,一個是品牌,一個是內存。此時我們就可以通過橋接模式將這兩個維度分離開來,每一個維度都可以獨立擴展。
  • Java Singleton設計模式DEMO
    當您只想擁有給定類的一個實例時,將使用單例設計模式。它是一種創造性的設計模式,我們處理對象的創建。動機和現實世界的例子在面向對象的設計中,某些類只有一個實例非常重要。那是因為它們代表了一種獨特的東西,這是同類產品中的一種。
  • Java設計模式之行為型模式
    需要設計一個接口,為一系列實現類提供統一的方法,多個實現類實現該接口,設計一個抽象類(可有可無,屬於輔助類),提供輔助函數。命令模式【Command】 【學習難度:★★★☆☆,使用頻率:★★★★☆】定義:在面向對象程式設計的範疇中,命令模式(Command Pattern)是一種設計模式,它嘗試以物件來代表實際行動。一般來說,行為請求者與行為實現者通常是一種緊耦合的關係。