輕松掌握J(rèn)ava適配器模式
在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄穑龇ㄊ菍㈩愖约旱慕涌诎谝粋€(gè)已存在的類中。
特點(diǎn):將兩個(gè)不兼容的類通過接口實(shí)現(xiàn)在一起工作
企業(yè)級開發(fā)和常用框架中的應(yīng)用:流接口,例如將字符流轉(zhuǎn)換為字節(jié)流輸出是用的outputstreamreader
適配器模式分為類適配器和對象適配器:
舉例:電腦只有USB接口,但是鍵盤只有圓口,這時(shí)就需要一個(gè)適配器,讓鍵盤能輸入數(shù)據(jù)到電腦
類適配器:
package com.test.adapter;
public class Computer {
public void show(USB usb){
usb.recive();
System.out.println("電腦顯示輸入的數(shù)據(jù)");
}
public static void main(String[] args) {
Computer c = new Computer();
USB u = new USBAdapter();
c.show(u);
}
}
class KeyBoard{
public void input(){
System.out.println("鍵盤輸入數(shù)據(jù)");
}
}
/**
* 適配器接口
*/
interface USB{
public void recive();
}
/**
* 具體的適配器
*/
class USBAdapter extends KeyBoard implements USB{
public void recive() {
System.out.println("我是USB適配器,我使圓口的鍵盤能和USB接口電腦連接");
super.input();
}
}
對象適配器:
package com.test.adapter;
public class Computer {
public void show(USB usb){
usb.recive();
System.out.println("電腦顯示輸入的數(shù)據(jù)");
}
public static void main(String[] args) {
Computer c = new Computer();
KeyBoard k = new KeyBoard();
USB u = new USBAdapter(k);
c.show(u);
}
}
class KeyBoard{
public void input(){
System.out.println("鍵盤輸入數(shù)據(jù)");
}
}
/**
* 適配器接口
*/
interface USB{
public void recive();
}
/**
* 具體的適配器
*/
class USBAdapter implements USB{
private KeyBoard k;
public USBAdapter(KeyBoard k) {
this.k = k;
}
public void recive() {
System.out.println("我是USB適配器,我使圓口的鍵盤能和USB接口電腦連接");
k.input();
}
}
相對而言,對象適配器通過組合的方式比類適配器通過集成的方式要更靈活,推薦平時(shí)使用對象適配器。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java設(shè)計(jì)模式之適配器模式(Adapter模式)介紹
- Java Adapter 適配器模式(類適配器,對象適配器)優(yōu)缺點(diǎn)對比
- 實(shí)例解析Java設(shè)計(jì)模式編程中的適配器模式使用
- Java設(shè)計(jì)模式之適配器模式簡介
- Java結(jié)構(gòu)型設(shè)計(jì)模式中的適配器模式與橋接模式解析
- java設(shè)計(jì)模式之適配器模式
- 初識Java設(shè)計(jì)模式適配器模式
- java設(shè)計(jì)模式之適配器模式(Adapter)
- Java適配器模式定義與用法示例
- 23種設(shè)計(jì)模式(5) java適配器模式
相關(guān)文章
Java使用lambda自定義Arrays.sort排序規(guī)則說明
這篇文章主要介紹了Java使用lambda自定義Arrays.sort排序規(guī)則說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
RestTemplate實(shí)現(xiàn)發(fā)送帶headers的GET請求
這篇文章主要介紹了RestTemplate實(shí)現(xiàn)發(fā)送帶headers的GET請求,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Spring Boot啟動過程(四)之Spring Boot內(nèi)嵌Tomcat啟動
這篇文章主要介紹了Spring Boot啟動過程(四)之Spring Boot內(nèi)嵌Tomcat啟動的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
初識Spring Boot框架之Spring Boot的自動配置
本篇文章主要介紹了初識Spring Boot框架之Spring Boot的自動配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
Java動態(tài)獲取實(shí)現(xiàn)某個(gè)接口下所有的實(shí)現(xiàn)類對象集合
今天小編就為大家分享一篇關(guān)于Java動態(tài)獲取實(shí)現(xiàn)某個(gè)接口下所有的實(shí)現(xiàn)類對象集合,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12

