適配器模式

有點嫁接的感覺,對外展示的是一個類或接口,內(nèi)部可能是其他類或接口,對外無感知。

 類適配器:繼承實現(xiàn),靜態(tài)定義

 對象適配器:代理實現(xiàn),動態(tài)組合模式

? ? 接口適配器:選擇性重寫接口方法,不必全部重寫

一、對象適配器

鳥類接口

public interface Bird {

public void fly();

public void say();

}

鳥類實現(xiàn)類

public class Duck implements Bird {

@Override

public void fly() {

System.out.println("i'm Duck! i can fly!");

}

@Override

public void say() {

System.out.println("ga ga ga");

}

}

動物接口

public interface Animal {

public void name();

public void canDo();

}

動物實現(xiàn)類

public class Monkey implements Animal {

@Override

public void name() {

System.out.println("i'm monkey!");

}

@Override

public void canDo() {

System.out.println("i can say ji ji zha zha !");

}

}

適配器

public class BirdAdapter implements Bird {

private Animal ani;

BirdAdapter(Animal a){

this.ani = a;

}

@Override

public void fly() {

ani.name();

}

@Override

public void say() {

ani.canDo();

}

}

二、類適配器

public class BirdAdapter2 extends Monkey implements Bird {

@Override

public void fly() {

name();

}

@Override

public void say() {

canDo();

}

}

測試類

public class AdapterTest {

public void test(Bird b){

b.fly();

b.say();

}

/**

* 對象適配器

*/

@Test

public void test1() {

AdapterTest t = new AdapterTest();

Animal a = new Monkey();

BirdAdapter ad = new BirdAdapter(a);

t.test(ad);

System.out.println("神不神奇,奇不奇怪");

}

/**

* 類適配器

*/

@Test

public void test2(){

Bird b = new BirdAdapter2();

b.fly();

b.say();

}

}

三、接口適配器

鳥類接口

public interface Bird {

public void name();

public void fly();

public void say();

}

適配器

public abstract class BirdAdapter implements Bird {

@Override

public void name() {

}

@Override

public void fly() {

}

@Override

public void say() {

}

}

鴨子

public class Duck extends BirdAdapter {

public void fly() {

super.fly();

}

public void say() {

super.say();

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1 類適配器模式: 類的適配器模式把適配的類的API轉(zhuǎn)換成為目標類的API。 在上圖中可以看出,Adaptee類并...
    洋_6653閱讀 1,776評論 0 1
  • 適配器模式:其實就是把一個實例類轉(zhuǎn)換成另外的一個接口的類型的,適配器讓原本接口不兼容的類可以合作無間。 適配器是使...
    子龍神閱讀 321評論 0 0
  • 適配器模式將某個類的接口轉(zhuǎn)換成客戶端期望的另一個接口表示,目的是消除由于接口不匹配所造成的類的兼容性問題。主要...
    亞瑟銘閱讀 210評論 0 0
  • 適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結(jié)構(gòu)型模式,它...
    陳吉思_汗閱讀 73評論 0 0
  • 適配器模式 參考博文:https://blog.csdn.net/mrkohaku/article/details...
    普明子閱讀 219評論 0 0

友情鏈接更多精彩內(nèi)容