這篇文章主要介紹“java適配器模式的兩種分類是什么”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“java適配器模式的兩種分類是什么”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比三江侗網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式三江侗網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋三江侗地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
1、類適配器模式
實(shí)現(xiàn)方式:定義一個(gè)適配器類來實(shí)現(xiàn)當(dāng)前系統(tǒng)的業(yè)務(wù)接口,同時(shí)又繼承現(xiàn)有組件庫中已經(jīng)存在的組件。
public class HelloWorld {
public static void main(String[] args) {
Computer computer = new Computer();
SDCard sdCard = new SDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
SDAdapterTF adapter = new SDAdapterTF();
System.out.println(computer.readSD(adapter));
}
}
// SD卡的接口
interface SDCard {
// 讀取SD卡功能
String readSD();
// 寫入SD卡功能
void writeSD(String msg);
}
// SD卡實(shí)現(xiàn)類
class SDCardImpl implements SDCard {
@Override
public String readSD() {
String msg = "sd card read a msg: hello sd card";
return msg;
}
@Override
public void writeSD(String msg) {
System.out.println("sd card write msg: " + msg);
}
}
// 電腦類
class Computer {
public String readSD(SDCard sdCard) {
if (sdCard == null) {
throw new NullPointerException("sd card null");
}
return sdCard.readSD();
}
}
// TF卡接口
interface TFCard {
// 讀取TF卡功能
String readTF();
// 寫入TF卡功能
void writeTF(String msg);
}
// TF卡實(shí)現(xiàn)類
class TFCardImpl implements TFCard {
@Override
public String readTF() {
String msg = "sd card read a msg: hello tf card";
return msg;
}
@Override
public void writeTF(String msg) {
System.out.println("tf card write msg: " + msg);
}
}
// 定義適配器類(SD兼容TF)
class SDAdapterTF extends TFCardImpl implements SDCard {
@Override
public String readSD() {
System.out.println("adapter read tf card ");
return readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write tf card");
writeTF(msg);
}
}2、對象適配器模式
實(shí)現(xiàn)方式:對象適配器模式可采用將現(xiàn)有組件庫中已經(jīng)實(shí)現(xiàn)的組件引入適配器中,該類同時(shí)實(shí)現(xiàn)當(dāng)前系統(tǒng)的業(yè)務(wù)接口。
public class HelloWorld {
public static void main(String[] args) {
Computer computer = new Computer();
SDCard sdCard = new SDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
TFCard tfCard = new TFCardImpl();
SDAdapterTF adapter = new SDAdapterTF(tfCard);
System.out.println(computer.readSD(adapter));
}
}
// SD卡的接口
interface SDCard {
// 讀取SD卡功能
String readSD();
// 寫入SD卡功能
void writeSD(String msg);
}
// SD卡實(shí)現(xiàn)類
class SDCardImpl implements SDCard {
@Override
public String readSD() {
String msg = "sd card read a msg: hello sd card";
return msg;
}
@Override
public void writeSD(String msg) {
System.out.println("sd card write msg: " + msg);
}
}
// 電腦類
class Computer {
public String readSD(SDCard sdCard) {
if (sdCard == null) {
throw new NullPointerException("sd card null");
}
return sdCard.readSD();
}
}
// TF卡接口
interface TFCard {
// 讀取TF卡功能
String readTF();
// 寫入TF卡功能
void writeTF(String msg);
}
// TF卡實(shí)現(xiàn)類
class TFCardImpl implements TFCard {
@Override
public String readTF() {
String msg = "sd card read a msg: hello tf card";
return msg;
}
@Override
public void writeTF(String msg) {
System.out.println("tf card write msg: " + msg);
}
}
// 定義適配器類(SD兼容TF)
class SDAdapterTF implements SDCard {
private TFCard tfCard;
public SDAdapterTF(TFCard tfCard) {
this.tfCard = tfCard;
}
@Override
public String readSD() {
System.out.println("adapter read tf card ");
return tfCard.readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write tf card");
tfCard.writeTF(msg);
}
}關(guān)于“java適配器模式的兩種分類是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
本文標(biāo)題:java適配器模式的兩種分類是什么
本文地址:http://www.chinadenli.net/article14/geooge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站排名、搜索引擎優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)