国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設計模式大白話——適配器模式

這篇具有很好參考價值的文章主要介紹了設計模式大白話——適配器模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


設計模式大白話——適配器模式,設計模式,設計模式,后端,java,golang,適配器模式

概述

? 適配器其實非常好理解,放到生活中來,我們身邊處處都有這樣的例子,最常見的是用的比較多的各種轉接線(如:USB 轉 Type-C),有了這個“適配器”,我們就能夠將電腦和手機等設備相進行連接,而不需要改動電腦/手機的原有接口。

示例

? 回到編程的世界中,假設我們的某個程序一直依賴一個很久遠的接口 OldBusinessInterface,這個時候由于業(yè)務需求,需要使用到比較新的接口 NewBusinessInterface,由于歷史原因將不對舊的代碼進行修改 ,因此目前的方案是將使用 適配器模式 去讓 NewBusinessInterface 去適配 OldBusinessInterface。

> 代碼在線運行 <

package main

import "fmt"

// OldBusinessInterface 這是舊的接口
type OldBusinessInterface interface {
	OldBusinessMethodA(str string) int
	OldBusinessMethodB()
}

// OldBusiness 這是舊的業(yè)務類,實現了舊的接口
type OldBusiness struct {
}

func (o *OldBusiness) OldBusinessMethodA(str string) int {
	fmt.Println("OldBusinessMethodA is called")
	return len(str)
}

func (o *OldBusiness) OldBusinessMethodB() {
	fmt.Println("OldBusinessMethodB is called")
}

// NewBusinessInterface 這是新的接口
type NewBusinessInterface interface {
	NewBusinessMethodA(str string) int
}

// NewBusiness 這是新的業(yè)務類,實現了新的接口
type NewBusiness struct {
}

func (n *NewBusiness) NewBusinessMethodA(str string) int {
	fmt.Println("NewBusinessMethodA is called")
	return len(str)
}

// OldBusinessMethod 這是舊的業(yè)務方法,依賴于舊的接口,但是新的業(yè)務類沒有實現舊的接口
func OldBusinessMethod(a OldBusinessInterface) {
	a.OldBusinessMethodA("hello")
}

// Adapter 這是適配器,實現了舊的接口,但是依賴于新的接口,這樣就可以在舊的業(yè)務方法中使用新的業(yè)務類了
type Adapter struct {
	NewBusinessInterface
}

func (a *Adapter) OldBusinessMethodA(str string) int {
	fmt.Println("[Adapter] OldBusinessMethodA is called")
	return a.NewBusinessMethodA(str)
}

func (a *Adapter) OldBusinessMethodB() {
	fmt.Println("[Adapter] OldBusinessMethodB is called")
}

func main() {
	// 舊的使用姿勢
	OldBusinessMethod(&OldBusiness{})

	fmt.Println("------------------")

	// 使用適配器,可以在舊的業(yè)務方法中使用新的業(yè)務類了
	OldBusinessMethod(&Adapter{&NewBusiness{}})
}

運行結果:

OldBusinessMethodA is called
------------------
[Adapter] OldBusinessMethodA is called
NewBusinessMethodA is called

? 通過適配器,我們能夠將 B 接口變成 A 接口,通過這個方式,我們不需要再重新寫一個新的實現類,而是只需要增加一個 適配器,這種感覺就是:你現在只有一個安卓充電線,但是你的手機是 Type-C 的接口,這個時候你只需要通過一個 轉接線 就可以讓 Type-C 接口的手機使用安卓充電線,而不用重新再買一個 Type-C 接口的充電器,這確實能夠方便很多,當然,重新買一個充電器也并不是說不可取,這需要結合實際場景考慮各方面的因素來選擇最合適的方案。

適配器的種類

? 實際上,適配器有“兩種”:對象適配器類適配器 。

  • 對象適配器

    設計模式大白話——適配器模式,設計模式,設計模式,后端,java,golang,適配器模式

  • 類適配器
    設計模式大白話——適配器模式,設計模式,設計模式,后端,java,golang,適配器模式

    ?

? 其實本質上只是適配的目標不同而已,我們剛才的代碼是針對接口而做的適配,其實就是對象適配器,對于類適配器,其實就是針對類型進行適配(在 Java 中,就是對 Class 進行的適配),使用此方式的前提條件是 編程語言支持多繼承(如圖,Adapter 繼承了目標類和待適配的類)。

小結

  • 模式定義

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

? 總結以上的內容,說白了,適配器其實就是一個中間層,可以讓原本不兼容的接口轉換成目標接口,最核心的是 “轉換” 二字。如果你了解過外觀模式和裝飾模式,你可能會對他們三個感到有些困惑,分不清他們的差異,不用擔心,我在之后的文章會對他們三個的差異做出解釋。

? 以上便是本篇的全部內容了,如果內容存在又問題的地方歡迎指點。文章來源地址http://www.zghlxwxcb.cn/news/detail-688430.html

到了這里,關于設計模式大白話——適配器模式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 設計模式-適配器模式

    設計模式-適配器模式

    在我們生活中,插座輸出的電源都是220V的,而我們手機充電需要的電壓基本都是5V的。我們不能直接用220V的電壓來給手機充電,也不能說專門有線路來提供5V的電壓。所以就有了充電器,充電器可以將220V的電壓轉為5V的電壓,這樣我們就方便太多了。 上面所說的充電器其實就

    2024年02月08日
    瀏覽(34)
  • 【設計模式】適配器模式

    【設計模式】適配器模式

    適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結構型模式,它結合了兩個獨立接口的功能。 這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能。舉個真實的例子,讀卡器是作為內存卡和筆記本之間的適配器。

    2024年02月12日
    瀏覽(32)
  • 設計模式--適配器模式

    設計模式--適配器模式

    目錄 基本介紹 工作原理 類適配模式 介紹 應用實例介紹 類適配器模式注意事項和細節(jié) 對象適配模式 介紹 對象適配器模式注意事項和細節(jié) 接口適配器模式 介紹 適配器模式的注意事項和細節(jié) ?(1) 適配器模式(Adapter Pattern) 將某個類的接口轉換成客戶端期望的另一個接口表示

    2023年04月26日
    瀏覽(19)
  • 【設計模式】使用適配器模式做補償設計

    【設計模式】使用適配器模式做補償設計

    適配器模式是一種 結構型設計模式 ,它提供了一個中間層,通過這個中間層,客戶端可以使用統(tǒng)一的接口與具有不同接口的類進行交互,也就是說,將一個接口轉換成客戶期望的另一個接口,使得原本不兼容的接口能夠協(xié)同工作。 舉個現實中的例子,我們現在的很多輕薄筆

    2024年02月22日
    瀏覽(25)
  • 設計模式 06 適配器模式

    適配器模式(Adapter Pattern)屬于 結構型 模式 結構型 模式關注如何將現有的類或對象組織在一起形成更加強大的結構。 在生活中,我們經常遇到這樣的一個問題:輕薄筆記本通常只有 type-c 或者 usb-a 接口,沒有網口。但日常使用中是往往需要連接網口上網的,這時想到的第

    2024年02月11日
    瀏覽(19)
  • 設計模式-- 3.適配器模式

    設計模式-- 3.適配器模式

    將一個類的接口轉換成客戶希望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 請求者(client):客戶端角色,需要使用適配器的對象,不需要關心適配器內部的實現,只對接目標角色。 目標角色(Target):目標角色,和client直接對接,定義

    2024年01月18日
    瀏覽(26)
  • 《設計模式》之適配器模式

    《設計模式》之適配器模式

    把一個類的接口轉換成客戶端所期待的另一種接口,從而使原接口不匹配而無法再一起工作的兩個類能在一起工作。 在軟件系統(tǒng)中,由于應用環(huán)境的變化,常常需要將“一些現存的對象”放在新的環(huán)境中應用,但是新環(huán)境要求的接口是這些現存對象所不能滿足的。 如何應對

    2024年02月09日
    瀏覽(22)
  • 設計模式四:適配器模式

    設計模式四:適配器模式

    1、適配器模式的理解 適配器模式可以理解為有兩個現成的類Adaptee和Target,它們兩個是不能動的,要求必須使用B這個類來實現一個功能,但是A的內容是能復用的,這個時候我們需要編寫一個轉換器 適配器模式 Adaptee:被適配者,現有的接口或者類; Adapter:適配器類,適配器

    2024年02月22日
    瀏覽(24)
  • 設計模式-適配器模式 Adapter

    適配器設計模式(Adapter Design Pattern)是一種結構型設計模式,用于 解決兩個不兼容接口之間的問題 。適配器允許 將一個類的接口轉換為客戶端期望的另一個接口,使得原本由于接口不兼容而不能一起工作的類可以一起工作。 在適配器設計模式中,主要包含以下四個角色:

    2024年02月19日
    瀏覽(17)
  • 【軟考】設計模式之適配器模式

    【軟考】設計模式之適配器模式

    1. 說明 1.Adapter(適配器)。 2.將一個類的接口轉換成客戶希望的另外一個接口。 3.Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 4.類適配器使用多重繼承對一個接口與另一個接口進行匹配。 5.對象適配器依賴于對象組合。 6.適配器模式是一種非

    2024年04月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包