91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

圖解設計模式之Adapter模式

發布時間:2020-03-20 17:39:15 來源:網絡 閱讀:813 作者:Adam的blog 欄目:開發技術

什么是Adapter模式

 Adapter模式即適配器模式,對于適配器的理解參考現實生活中把交流電轉換成直流電的電源適配器,用于填補現有的程序所需的程序之間差異的設計模式就是Adapter模式,有以下兩種實現方式:
 1. 類適配器模式(使用繼承的適配器)
 2. 對象適配器模式(使用委托的適配器)
所謂繼承和委托的區別在哪呢?委托是指將某個方法中的實際處理交給其他實例的方法,繼承則是自己進行處理,下面分別看下兩種實現方式:

代碼清單

這里有一個需要被適配的Banner類

/**
 * 被適配角色:交流100福特電源
 * @author guozhenZhao
 * @date 2018年6月21日
 */
public class Banner {
    private String string;

    public Banner(String string) {
        super();
        this.string = string;
    }

    public void showWithParen() {
        System.out.println("("+ string +")");
    }

    public void showWithAster() {
        System.out.println("*"+ string +"*");
    }
}

還有一個接口和一個抽象類

public interface Print {
    public abstract void printWeak();
    public abstract void printStrong();
}
public abstract class PrintTwo {
    public abstract void printWeak();
    public abstract void printStrong();
}

下面看一下兩種方式的區別:
1. 使用繼承的適配器

/**
 * 使用繼承的適配器
 * @author guozhenZhao
 * @date 2018年6月20日
 */
public class PrintBanner extends Banner implements Print {

    public PrintBanner(String string) {
        super(string);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void printWeak() {
        // TODO Auto-generated method stub
        showWithParen();
    }

    @Override
    public void printStrong() {
        // TODO Auto-generated method stub
        showWithAster();
    }

}

2.使用委托的適配器

/**
 * 使用委托的適配器
 * @author guozhenZhao
 * @date 2018年6月21日
 */
public class PrintBannerTwo extends PrintTwo {
    private Banner banner;

    public PrintBannerTwo(String string) {
        super();
        this.banner = new Banner(string);
    }

    @Override
    public void printWeak() {
        // TODO Auto-generated method stub
        banner.showWithParen();
    }

    @Override
    public void printStrong() {
        // TODO Auto-generated method stub
        banner.showWithAster();
    }

}

當PrintBanner類的printWeak方法被調用時,并不是PrintBanner類自己進行處理,而是交給了其他類的實例的某些方法

什么時候使用適配器模式呢

有一些現有的類可以被我們重復使用時,我們可以使用適配器將這些類作為組件重復利用,另外適配器模式用于連接接口(API)不同的類

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涟源市| 河曲县| 瑞金市| 万宁市| 肇庆市| 修水县| 达拉特旗| 志丹县| 濮阳市| 望城县| 龙里县| 晋江市| 白银市| 通江县| 乐亭县| 绿春县| 奎屯市| 游戏| 怀远县| 长岛县| 兴宁市| 永定县| 阿克| 永和县| 四子王旗| 克什克腾旗| 兴和县| 江源县| 彭水| 铁力市| 文成县| 安丘市| 辉县市| 高陵县| 武鸣县| 喀喇沁旗| 苗栗市| 兰溪市| 八宿县| 玉环县| 岳阳市|