Java軟件設計模式之適配器模式詳解
適配器模式
1、原理
適配器模式是一種結(jié)構(gòu)型設計模式。適配器模式的思想是:把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。

2、角色分析
適配器模式涉及3個角色:
源(Adaptee):需要被適配的對象或類型,相當于插頭。適配器(Adapter):連接目標和源的中間對象,相當于插頭轉(zhuǎn)換器。目標(Target):期待得到的目標,相當于插座。

3、優(yōu)缺點

適配器形式
適配器模式包括3種形式:類適配器模式、對象適配器模式、接口適配器模式(或又稱作缺省適配器模式)。
一、類適配器
代碼:
Adaptee
package oopdemo01.Design_pattern.adapter;
// 要被適配的類:網(wǎng)線
public class Adaptee {
public void request() {
System.out.println("連接網(wǎng)線上網(wǎng)");
}
}Adapter(此處繼承Adaptee)
package oopdemo01.Design_pattern.adapter;
// 1.繼承 (類適配器,單繼承)
// 真正的適配器,需要連接usb,連接網(wǎng)線
public class Adapter extends Adaptee implements NetToUsb {
@Override
public void handleRequest() {
super.request(); // 可以上網(wǎng)了
}
}NetToUsb
package oopdemo01.Design_pattern.adapter;
// 接口轉(zhuǎn)換器的抽象實現(xiàn)
public interface NetToUsb {
// 作用:處理請求,網(wǎng)線=>usb
public void handleRequest();
}Computer
package oopdemo01.Design_pattern.adapter;
// 客戶端類:想上網(wǎng),插不上網(wǎng)線
public class Computer {
// 我們的電腦需要連接上轉(zhuǎn)接器才可以上網(wǎng)
public void net(NetToUsb adapter) {
// 上網(wǎng)的具體實現(xiàn),找一個轉(zhuǎn)接頭
adapter.handleRequest();
}
public static void main(String[] args) {
// 電腦 適配器 網(wǎng)線
Computer computer = new Computer(); // 電腦
Adaptee adaptee = new Adaptee(); // 網(wǎng)線
Adapter adapter = new Adapter(); // 轉(zhuǎn)接器
computer.net(adapter);
}
}控制臺輸出結(jié)果:

二、對象適配器
Adapter2(此處的Adaptee是一個屬性)
package oopdemo01.Design_pattern.adapter;
// 2.組合 (對象適配器:更常用)
// 真正的適配器,需要連接usb,連接網(wǎng)線
public class Adapter2 implements NetToUsb {
private Adaptee adaptee;
public Adapter2(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void handleRequest() {
adaptee.request(); // 可以上網(wǎng)了
}
}Computer
package oopdemo01.Design_pattern.adapter;
// 客戶端類:想上網(wǎng),插不上網(wǎng)線
public class Computer {
// 我們的電腦需要連接上轉(zhuǎn)接器才可以上網(wǎng)
public void net(NetToUsb adapter) {
// 上網(wǎng)的具體實現(xiàn),找一個轉(zhuǎn)接頭
adapter.handleRequest();
}
public static void main(String[] args) {
// 電腦 適配器 網(wǎng)線
Computer computer = new Computer(); // 電腦
Adaptee adaptee = new Adaptee(); // 網(wǎng)線
Adapter2 adapter2 = new Adapter2(adaptee); // 轉(zhuǎn)接器
computer.net(adapter2);
}
}控制臺輸出結(jié)果:

到此這篇關于Java軟件設計模式之適配器模式詳解的文章就介紹到這了,更多相關Java適配器模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot線程池監(jiān)控的簡單實現(xiàn)
本文主要介紹了springboot線程池監(jiān)控的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
詳解Java從后臺重定向(redirect)到另一個項目的方法
這篇文章主要介紹了詳解Java從后臺重定向(redirect)到另一個項目的方法,非常具有實用價值,需要的朋友可以參考下2017-04-04
Mybatis中mapper.xml實現(xiàn)熱加載介紹
大家好,本篇文章主要講的是Mybatis中mapper.xml實現(xiàn)熱加載介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01
SpringBoot中選擇性加載Bean的幾種方式小結(jié)
自動配置是springboot技術非常好用的核心因素,前面學習了這么多種技術的整合,每一個都離不開自動配置,不過在學習自動配置的時候,需要你對spring容器如何進行bean管理的過程非常熟悉才行,本文給大家介紹了SpringBoot中選擇性加載Bean的幾種方式,需要的朋友可以參考下2025-01-01

