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

Java 設計模式之適配器模式詳解

 更新時間:2021年11月08日 14:55:33   作者:不俠居  
設計模式(Design pattern)是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設計經(jīng)驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性

定義

適配器將一個類的接口,轉換成客戶期望另一個接口。適配器讓原本不兼容的類可以合作無間

結構圖

在這里插入圖片描述

如圖所示,兩腳插頭如何能插入三腳插座,可以在中間加一個適配器進行轉換,就能實現(xiàn)兩腳插頭能插入三腳插座。

使用場景

  • 新的代碼兼容舊的代碼
  • 使用別人好的代碼到自己的代碼中

代碼實現(xiàn)

適配器模式有:對象適配器和類適配器

Java代碼實現(xiàn)

java沒有多繼承,只能實現(xiàn)對象適配器
先創(chuàng)建兩個接口

// 適配目標接口
public interface Target{
	public void aaa();
}
// 適配者接口
public interface Adaptee{
	public void bbb();
}

實現(xiàn)這兩個接口

public class Targetimpl implements Target{
	public void aaa(){
		System.out.printnln("Target")
	}
}
public class Adapteeimpl implements Adaptee{
	public void bbb(){
		System.out.printnln("Adaptee")
	}
}

制作適配器
需要實現(xiàn)要適配成什么接口,需要實現(xiàn)什么接口

public class Adapter implements Target{
	Adaptee adaptee;
	public Adapter(Adaptee adapter){
		this.adaptee = adaptee;
	}
	public void aaa(){
		adaptee.bbb()
	}
}
public class Run{
	public static void main(String[] args){
		Adaptee adaptee = new Adatee();
		Target target = new Targetimpl();
		Target adapter = new Adapter(target);
		adaptee.aaa();
		target.bbb();
		adapter.aaa();
	}
}

運行結果:

Target
Adaptee
Adaptee

Python代碼實現(xiàn)

Python可以實現(xiàn)對象適配器和類適配器

這是對象適配器

# 適配目標
class Target(object):
    def aaa(self):
        print("Target")
# 被適配者
class Adaptee(object):
    def bbb(self):
        print("Adaptee")

# 這是適配器
class Adapter(Target):
    def __init__(self, Adaptee):
        self.Adaptee = Adaptee
        
    def aaa(self):
        self.Adaptee.bbb()

target = Target()
adaptee = Adaptee()
adapter = Adapter(adaptee)
target.aaa()
adaptee.bbb()
adapter.aaa()

運行結果:

Target
Adaptee
Adaptee

這是類適配器

class Target(object):
    def aaa(self):
        print("Target")

class Adaptee(object):
    def bbb(self):
        print("Adaptee")

class Adapter(Target, Adaptee):
    def aaa(self):
        self.bbb()

target = Target()
adaptee = Adaptee()
adapter = Adapter()
target.aaa()
adaptee.bbb()
adapter.aaa()

運行結果:

Target
Adaptee
Adaptee

到此這篇關于Java 設計模式之適配器模式詳解的文章就介紹到這了,更多相關Java 設計模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot整合FastDFS中間件實現(xiàn)文件分布管理

    SpringBoot整合FastDFS中間件實現(xiàn)文件分布管理

    FastDFS是一個開源的輕量級分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件上傳、文件下載等,解決了大容量存儲和負載均衡的問題,本文介紹了SpringBoot整合FastDFS中間件實現(xiàn)文件分布管理,需要的朋友可以參考下
    2024-08-08
  • java連接Mongodb實現(xiàn)增刪改查

    java連接Mongodb實現(xiàn)增刪改查

    這篇文章主要為大家詳細介紹了java連接Mongodb實現(xiàn)增刪改查,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Java中的Random()函數(shù)及兩種構造方法

    Java中的Random()函數(shù)及兩種構造方法

    Java中存在著兩種Random函數(shù)分別是java.lang.Math.Random和java.util.Random,文中給大家介紹了random()的兩種構造方法,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • SpringBoot在idea中的 .idea和 .iml文件的作用

    SpringBoot在idea中的 .idea和 .iml文件的作用

    本文主要介紹了SpringBoot在idea中的 .idea和 .iml文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • 關于Spring BeanPostProcessor的執(zhí)行順序

    關于Spring BeanPostProcessor的執(zhí)行順序

    這篇文章主要介紹了Spring BeanPostProcessor的執(zhí)行順序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA創(chuàng)建Servlet并配置web.xml的實現(xiàn)

    IDEA創(chuàng)建Servlet并配置web.xml的實現(xiàn)

    這篇文章主要介紹了IDEA創(chuàng)建Servlet并配置web.xml的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 淺談一下Java為什么不能使用字符流讀取非文本的二進制文件

    淺談一下Java為什么不能使用字符流讀取非文本的二進制文件

    這篇文章主要介紹了淺談一下為什么不能使用字符流讀取非文本的二進制文件,剛學Java的IO流部分時,書上說只能使用字節(jié)流去讀取圖片、視頻等非文本二進制文件,不能使用字符流,否則文件會損壞,需要的朋友可以參考下
    2023-04-04
  • 從實戰(zhàn)角度詳解Disruptor高性能隊列

    從實戰(zhàn)角度詳解Disruptor高性能隊列

    這篇文章主要介紹了從實戰(zhàn)角度詳解Disruptor高性能隊列,對正在學習這方面知識的小伙伴有很大的幫助,感興趣的小伙伴快來一起學習吧
    2021-08-08
  • Java8中常見函數(shù)式接口的使用示例詳解

    Java8中常見函數(shù)式接口的使用示例詳解

    在 Java 8 中,函數(shù)式接口是一個關鍵的特性,它們允許將方法作為參數(shù)傳遞或返回類型,本文為大家整理了一些常見的函數(shù)式接口的使用,希望對大家有所幫助
    2023-12-12
  • Java中輸入輸出方式的簡單示例

    Java中輸入輸出方式的簡單示例

    Java語言的輸入輸出功能是十分強大而靈活的,美中不足的是看上去輸入輸出的代碼并不是很簡潔,因為你往往需要包裝許多不同的對象,下面這篇文章主要給大家介紹了關于Java中輸入輸出方式的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論

常宁市| 安义县| 沈丘县| 秦安县| 成安县| 平泉县| SHOW| 顺义区| 嘉义市| 西丰县| 河津市| 桃园县| 巴南区| 兴仁县| 邹平县| 洞口县| 扎鲁特旗| 朝阳区| 兴宁市| 宜城市| 松滋市| 浮梁县| 洛南县| 丹巴县| 密山市| 祥云县| 榆树市| 渝北区| 西乌| 新乡市| 富宁县| 昌图县| 衡南县| 五峰| 枞阳县| 合江县| 岚皋县| 准格尔旗| 息烽县| 博湖县| 岳阳市|