2017年2月24日 星期五

變壓器 (Adapter) 模式

就好像是變壓器一樣,能將110變220
如兩個物件都不同,但用中間的轉換器可以達到互通的目的
1.寫兩組介面和實作,彼此無關聯
2.寫轉換器,繼承其中一個實作並實作另一個介面
測試時,取得介面的方法就可取到實作的內容


public interface Adapter1 {
    String getOoo();
    String getXxx();
}
--------------------
public class Adapter1Impl implements Adapter1 {
    @Override
    public String getOoo() {
        return "ooo";
    }
    
    @Override
    public String getXxx() {
        return "xxx";
    }
}





public interface Adapter2 {
    String getAaa();
    String getBbb();
}
--------------------
public class Adapter2Impl implements Adapter2 {
    @Override
    public String getAaa() {
        return "aaa";
    }
    
    @Override
    public String getBbb() {
        return "bbb";
    }
}





public class Center extends Adapter2Impl implements Adapter1 {
    String a = super.getAaa();
    String b = super.getBbb();
    
    @Override
    public String getOoo() {
        return a;
    }
    
    @Override
    public String getXxx() {
        return b;
    }
}




※測試

Adapter1 a1 = new Center();
System.out.println(a1.getOoo());
System.out.println(a1.getXxx());

※結果:
aaa
bbb

沒有留言:

張貼留言