首頁  >  文章  >  Java  >  Java經典設計模式中關於適配器模式原理以及用法詳解

Java經典設計模式中關於適配器模式原理以及用法詳解

黄舟
黄舟原創
2017-08-07 10:49:531827瀏覽

這篇文章主要介紹了Java經典設計模式之適配器模式,簡單說明了適配器模式的概念、原理,並結合實例形式分析了java適配器模式的用法與相關注意事項,需要的朋友可以參考下

本文實例講述了Java經典設計模式之適配器模式。分享給大家供大家參考,具體如下:

適配器模式是把一個類別的介面適配成用戶所期待的,使得原本由於介面不相容而不能一起工作的一些類別可以在一起工作從而實現用戶所期望的功能。

適配器模式的優勢:

#1. 透過適配器,客戶端可以呼叫統一接口,操作簡單直接,並且程式碼邏輯緊湊,使用起來方便。
2. 程式碼重複使用,適配器模式是解決因為環境要求不相同 的問題,透過適配實現程式碼重複使用。
3. 將目標類別和適配器類別解耦,透過新建一個適配器類別來重複使用現在的類,不用再去重複修改原有程式碼,實現開閉原則。

共有兩類適配器模式

#1.物件適配器模式: 在這種適配器模式中,適配器容納一個它包裹的類別的實例。在這種情況下,適配器呼叫被包裹物件的實體。
2. 類別適配器模式: 在這種適配器模式下,適配器繼承自已實現的類別(一般多重繼承)。

範例程式碼:


#
/**
* @description:
* 原有的接口功能,比如是给电动车充电功能
*/
public interface FirstBaseIf {
void charging();//充电
}
/**
* 要实现的操作功能
* @description:
*/
public class NewFunction {
public void powerWithTwo(){
System.out.println(“新功能:给电动汽车也可以充电啦”);
}
}
/**
*新建适配器类,来实现对原有接口FirstBaseIf的操作使用
* @description:
*/
public class FunctionAdapter implements FirstBaseIf {
private NewFunction plug;
public FunctionAdapter(NewFunction plug){
this.plug=plug;
}
@Override
public void charging() {//重写原有接口中的方法,从而实现接口转化
System.out.println(“通过适配器转化”);
plug.powerWithTwo();
}
}
//——–测试代码——————-
public class Test {
private FirstBaseIf plug;
public Test(FirstBaseIf plug) {
  this.plug = plug;
}
public static void main(String[] args) {
  NewFunction two = new NewFunction();
  FirstBaseIf three = new FunctionAdapter(two);//这里就是通过适配器实现转换
  Test note = new Test(three);
  note.charge();
}
public void charge() {
  plug.charging();//使用原有接口中的功能
}
}

執行結果:

#適用場景:

在Java程式中,如果一個抽象類別或介面的話,就必須重寫所有的抽象方法。

那麼,如果一個介面中定義的抽象方法太多,而子類別中很多抽象方法又不需要用到,就應該設計一個適配器。透過Java語言進行的Android開發中,就常會用到適配器模式。

以上是Java經典設計模式中關於適配器模式原理以及用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn