日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

适配器(Adapter)

發布時間:2023/12/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适配器(Adapter) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

適配器模式說明

適配器模式(Adapter) 通常也被稱為轉換器,當一個對象或類的接口不能匹配用戶所期待的接口時,適配器就充當中間轉換的角色,以達到兼容用戶接口的目的,同時適配器也實現了客戶端與接口的解耦,提高了組件的可復用性

充當一個適配、兼容的工作

例子

兩插腳的電子設備如何使用三孔插座實現通電,開啟電視

● Target(目標接口):客戶端要使用的目標接口標準,對應本章例程中的三相插孔接口TriplePin。

● Adapter(適配器):實現了目標接口,負責適配(轉換)被適配者的接口specificRequest()為目標接口request(),對應本章例程中的電視機專屬適配器類TVAdapter。

● Adaptee(被適配者):被適配者的接口標準,目前不能兼容目標接口的問題接口,可以有多種實現類,對應本章例程中的兩相插孔接口DualPin。

● Client(客戶端):目標接口的使用者。

對象適配器/類適配器

二者的區別在于前者的Adaptee(被適配者)以接口形式出現并被Adapter(適配器)引用,而后者則以父類的角色出現并被Adapter(適配器)繼承,所以前者更加靈活,后者則更為簡便,適配器需要具備適配雙方的基本功能,才能做到兼容,相互對接

類適配器不利于擴展,具體場景下還是具體實用性

實例代碼

package com.azure.design.adapter;/*** 兩孔接口*/ public interface DualPin {// 火、零public void electrify (int l, int n); } package com.azure.design.adapter;/*** 三孔接口*/ public interface TriplePin {// 火、地、零public void electrify (int l, int n, int e); } package com.azure.design.adapter;import com.azure.design.proxy.dymaicproxy.UserService;public class TV implements DualPin {@Overridepublic void electrify(int l, int n) {System.out.print("接通火線:" + l + ",零線:" + n + "!" );System.out.println("電視開了" );} } package com.azure.design.adapter;/****/ public class Adapter implements TriplePin{private DualPin dualPin;// 創建適配器時, 將兩插設備注入public Adapter(DualPin dualPin) {this.dualPin = dualPin;}@Overridepublic void electrify(int l, int n, int e) {// 調用三插接口的方法實際上調的時兩插接口的方法dualPin.electrify(l, n);} } package com.azure.design.adapter;/*** 電視專屬適配器*/ public class TVAdapter extends TV implements TriplePin{@Overridepublic void electrify(int l, int n, int e) {super.electrify(l, n);} } package com.azure.design.adapter;import org.junit.Test;public class Client {/*** 對象適配器*/@Testpublic void tesAdapterDemo() {Adapter adapter = new Adapter(new TV());adapter.electrify(1,0,-1);}/*** 專屬適配器*/@Testpublic void tesTVAdapterDemo() {TVAdapter adapter = new TVAdapter();adapter.electrify(1,0,-1);} }

總結

以上是生活随笔為你收集整理的适配器(Adapter)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。