設計模式之適配器模式

對接接口的時候,常常會遇到,接口的功能差很少,可是接口不匹配,這個時候能夠使用適配器模式。java


適配器模式一般有這幾個角色:
ide

Target:目標接口ui

Source:源接口,源接口可能有多個。this

Adapter:適配器,將源接口處理傳換成Target接口。
設計


有兩種適配器模式的實現,一種是經過繼承Source,另外一種就是和Source使用組合的方式。code


1.繼承Source的方式:繼承

Target有一個getFirstName的方法,Source有一個getName方法,Source須要進行轉換才能對接Target的接口。接口

Target:get

public interface Target {
    String getFirstName();
}

Source:it

public class Source {

    public String getName(){
        return "Hui Li";
    }
}

Adapter

public class Adapter extends Source implements Target {
    @Override
    public String getFirstName() {
        return super.getName().split(" ")[0];
    }
}

2.對多個Source進行組合方式實現Adapter

Target有一個getName方法,,SourceA有一個getFirstName方法,SourceB有一個getLastName方法。

Target:

public interface Target {
    String getFirstName();
}

SourceA:

public class SourceA {
    public String getFirstName(){
        return "Hui";
    }
}

SourceB

public class SourceB {
    public String getLastName(){
        return "Li";
    }
}

Adapter:

public class Adapter implements Target {
    private SourceA sourceA;
    private SourceB sourceB;

    public Adapter(SourceA sourceA, SourceB sourceB) {
        this.sourceA = sourceA;
        this.sourceB = sourceB;
    }

    @Override
    public String getFirstName() {
        return this.sourceB.getLastName() + " " + this.sourceB.getLastName();
    }
}


適配器模式看起來確實挺簡單的。通常狀況下,在設計初期是不會考慮適配器模式的,基本上是遇到接口已經成熟,方便修改的時候須要對接接口,這時候適配器模式是你很是合適的選擇之一。

相關文章
相關標籤/搜索