適配器模式

/**
 * 適配器模式(Adapter):將一個類的接口轉換成客戶但願的另外一個接口,adapter模式
 * 使得本來因爲接口不兼容,而不能一塊兒工做的那些類能夠一塊兒工做.對修改關閉,對拓展開放. 
 * 不兼容的話 就加一個轉接頭.
 */
public class SixNine {
    /**
     * 能夠看到work(powerB);  是報錯的, powerA和powerB是同等級的對象
     * 
     */
    public static void main(String[] args) {
        /**
         * 能夠看到  powerA和 powerB 是不能夠一塊兒工做的,可是
         * 在適配器Adapter的  轉換頭的做用下能夠都在work 下工做.
         */
        PowerA powerA = new PowerAImpl();
        work(powerA);
        PowerB powerB = new PowerBImpl();
        Adapter bToAdapter = new Adapter(powerB);
        work(bToAdapter);
        
    }
    public static void work(PowerA a) {
        System.out.println("正在插入...");
        a.insert();
        System.out.println("插入結束...");
    }
}
class Adapter implements PowerA{// 針對PowerA 的類型作一個接口.
    private PowerB powerB; //  爲了使PowerB 適用於上述接口.
    public Adapter(){};
    public Adapter(PowerB powerB) {
        this.powerB = powerB;
    }
    @Override
    public void insert() {
        powerB.connect();
    }
    
}
interface PowerB{
    public void connect();
}
class PowerBImpl implements PowerB{
    @Override
    public void connect() {
        System.out.println("電源B開始工做...");
    }
}
interface PowerA {
    public void insert();
}
class PowerAImpl implements PowerA{

    @Override
    public void insert() {
        // TODO Auto-generated method stub
        System.out.println("電源A開始工做...");
    }
    
}
相關文章
相關標籤/搜索