Java適配器模式定義與用法示例
本文實例講述了Java適配器模式定義與用法。分享給大家供大家參考,具體如下:
將一個類的接口轉換成客戶想要的另一個接口,適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作
適配器一共包括3種角色
1、目標:目標是一個接口,該接口是客戶想使用的接口
2、被適配者:被適配者是一個已存在的接口或抽象類,這個接口或抽象類需要適配
3、適配器:適配器是一個類,該類實現(xiàn)了目標接口并包含有被適配者的引用,即適配者的指著是對被適配者接口與目標進行適配
package org.zhy.adapter;
/**
* 目標
* @author zhengyi
*
*/
public interface ThreeElectricOutlet {
//用來刻畫三相插座
public abstract void connectElectricCurrent();
}
package org.zhy.adapter;
/**
* 適配器
* @author zhengyi
*
*/
public class TreeElecricAdapter implements ThreeElectricOutlet {
TwoElectricOutlet outlet;
public TreeElecricAdapter(TwoElectricOutlet teo) {
this.outlet=teo;
}
@Override
public void connectElectricCurrent() {
outlet.connectElectricCurrent();
}
}
package org.zhy.adapter;
/**
* 被適配者
* @author zhengyi
*
*/
public interface TwoElectricOutlet {
//刻畫兩相插座
public abstract void connectElectricCurrent();
}
package org.zhy.adapter;
public class Appliction {
public static void main(String[] args) {
ThreeElectricOutlet outlet; //目標接口三相插座
Wash wash=new Wash();
outlet=wash;
System.out.println("使用三相插座接通電流");
outlet.connectElectricCurrent();
Tv tv=new Tv();
TreeElecricAdapter adapter=new TreeElecricAdapter(tv);
outlet= adapter;
System.out.println("使用三相插座接通電流");
outlet.connectElectricCurrent();
}
}
package org.zhy.adapter;
/**
* 洗衣機
* @author zhengyi
*
*/
public class Wash implements ThreeElectricOutlet {
private String name;
public Wash() {
name="洗衣機";
}
public Wash(String name){
this.name=name;
}
@Override
public void connectElectricCurrent() {
turnOn();
}
private void turnOn(){
System.out.println(name+"開始洗衣服");
}
}
package org.zhy.adapter;
/**
* 電視
* @author zhengyi
*
*/
public class Tv implements TwoElectricOutlet {
private String name;
public Tv() {
name="長江電視機";
}
public Tv(String s){
this.name=s;
}
@Override
public void connectElectricCurrent() {
turnOn();
}
private void turnOn(){
System.out.println(name+"開始播放節(jié)目");
}
}
適配器的適配程度
1、完全適配
如果目標接口中的方法數(shù)目與被適配者接口的方法數(shù)目相等那么適配器可將被適配者接口與目標接口進行完全適配
2、不完全適配
如果目標接口中的方法數(shù)目少于被適配者接口的方法數(shù)目那么適配器只能將被適配者接口與目標接口進行適配
3、剩余適配
如果目標接口中的方法數(shù)目大于被適配者接口的方法數(shù)目。那么適配器可將被適配者接口與目標接口進行完全適配,但必須將目標多余的方法給出用戶允許默認實現(xiàn)
適配器模式的優(yōu)點
1、目標和適配者是完全解耦的關系
2、適配器模式滿足“開-閉原則”當添加一個實現(xiàn)Adaptee接口的新類時,不必修改Adaptee,而Adaptee就能對這個新類的實例進行適配
更多java相關內容感興趣的讀者可查看本站專題:《Java數(shù)據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Springboot+Bootstrap實現(xiàn)增刪改查實戰(zhàn)
這篇文章主要介紹了Springboot+Bootstrap實現(xiàn)增刪改查實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
java導出大批量(百萬以上)數(shù)據的excel文件
這篇文章主要為大家詳細 介紹了java導出大批量即百萬以上數(shù)據的excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
Java?ArrayList集合之解鎖數(shù)據存儲新姿勢
這篇文章主要介紹了Java?ArrayList集合之解鎖數(shù)據存儲新姿勢,ArrayList是一個動態(tài)數(shù)組,可以自動調整大小,并提供了豐富的操作方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-03-03
java spring整合junit操作(有詳細的分析過程)
這篇文章主要介紹了java spring整合junit操作(有詳細的分析過程),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Spring?boot?Jpa添加對象字段使用數(shù)據庫默認值操作
這篇文章主要介紹了Spring?boot?Jpa添加對象字段使用數(shù)據庫默認值操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
grade構建閱讀spring源碼環(huán)境 Idea2020.3的過程
這篇文章主要介紹了grade構建閱讀spring源碼環(huán)境 Idea2020.3,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
gradle使用maven-publish發(fā)布jar包上傳到私有maven配置
這篇文章主要介紹了gradle使用maven-publish發(fā)布jar包上傳到私有maven的配置示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03

