1. 程式人生 > >23種設計模式(17):適配器模式

23種設計模式(17):適配器模式

interface 進行 term tle pan keyword ng- 匹配 可能

概述:

將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。

類型:結構型模式。

類圖:

適用性:

1.你想使用一個已經存在的類,而它的接口不符合你的需求。

2.你想創建一個可以復用的類,該類可以與其他不相關的類或不可預見的類(即那些接口

可能不一定兼容的類)協同工作。

3.(僅適用於對象Adapter)你想使用一些已經存在的子類,但是不可能對每一個都進行

子類化以匹配它們的接口。對象適配器可以適配它的父類接口。

參與者

1.Target

定義Client使用的與特定領域相關的接口。

2.Client

與符合Target接口的對象協同。

3.Adaptee

定義一個已經存在的接口,這個接口需要適配。

4.Adapter

對Adaptee的接口與Target接口進行適配

例子:


Target 

public interface Target {



    void adapteeMethod();



    void adapterMethod();

}

Adaptee 

public class Adaptee {



    public void adapteeMethod() {

        System.out.println("Adaptee method!");

    }

}

Adapter 

public class Adapter implements Target {



    private Adaptee adaptee;



    public Adapter(Adaptee adaptee) {

        this.adaptee = adaptee;

    }



    public void adapteeMethod() {

        adaptee.adapteeMethod();

    }



    public void adapterMethod() {

        System.out.println("Adapter method!");

    }

}

Client 

public class Test {



    public static void main(String[] args) {

        Target target = new Adapter(new Adaptee());

        target.adapteeMethod();



        target.adapterMethod();

    }

}

result:


Adaptee method!

Adapter method!

23種設計模式(17):適配器模式