五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

淺談Java設(shè)計模式-之-適配器模式

2019-01-07 15:19 作者:動力節(jié)點  | 我要投稿

適配器模式是將一個類的接口變成客戶端所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起工作,適配器模式也稱變壓器模式。

?

適配器模式主要分為兩種:類適配器 和 對象適配器

?

類適配器是基于繼承,對象適配器是基于組合,我們推薦多用組合少用繼承。

?

我們舉個例子:

?

如下圖,現(xiàn)給手機充電,但墻上均為三腳插孔,而手機充電器為兩腳插頭,從而無法為手機充電,所以我們需要一個帶有三腳插頭的插線板,同時插線板上須有兩腳插孔。

?

如此,手機-->手機充電器插頭-->插線板-->墻上的三腳插孔,完成手機充電。

?

一個適配器模式主要有如下幾個要素:

1、Source源角色(墻上的三腳插孔)

2.、Adapter適配器角色(插線板)

3.、Target目標角色(手機充電器插頭)

4、Client客戶端角色(手機)

?

下面我們來看一下如何用代碼描述這個適配器的過程:

?

/**源對象 (墻上的三腳插孔)*/

public class Source {

?? ?public void method() {
?? ??? ?System.out.println("我是墻上的三腳插孔,我只接受三腳插頭的");
?? ?}

}

/**適配器目標接口(手機充電器插頭)*/

public interface Target {

?? ?/**與源對象中的方法相同 */
?? ?public void method();
}

/**類適配器方式,通過繼承實現(xiàn)(插線板)*/

public class Adapter extends Source implements Target {

?? ?public void method() {?
?? ??? ?//調(diào)用父類的方法
?? ??? ?super.method();
?? ?}
}

/**對象適配器方式,通過組合實現(xiàn)(插線板)*/
public class Adapter2 implements Target {

?? ?/**對源對象的引用*/
?? ?private Source source;

?? ?public Adapter2 (Source source) {
?? ??? ?this.source = source;
?? ?}

?? ?@Override
?? ?public void method() {
?? ??? ?source.method();
?? ?}
}

/**客戶端(手機)*/
public class Client {

?? ?public static void main(String[] args) {
?? ??? ?//類適配器方式
?? ??? ?Target target = new Adapter();
?? ??? ?target.method();

?? ??? ?//對象適配器方式
?? ??? ?Source source = new Source();
?? ??? ?Target target2 = new Adapter2(source);
?? ??? ?target2.method();
?? ?}
}


以上就是一個適配器模式的典型代碼模板,在Java IO中,字節(jié)流InputStream轉(zhuǎn)換為字符流,中間即使用了適配器模式InputStreamReader,適配器模式可以讓兩個沒有關(guān)系的類在一起運行。


淺談Java設(shè)計模式-之-適配器模式的評論 (共 條)

分享到微博請遵守國家法律
邵阳县| 遵义市| 龙泉市| 台中市| 孟津县| 芜湖县| 海门市| 盘锦市| 承德县| 岚皋县| 华阴市| 武隆县| 上犹县| 东港市| 甘谷县| 百色市| 乐清市| 和田市| 新邵县| 晋宁县| 荆门市| 邢台县| 旺苍县| 仙居县| 商丘市| 循化| 兴仁县| 恩施市| 乌拉特后旗| 平遥县| 余庆县| 昌乐县| 周至县| 江源县| 枝江市| 青铜峡市| 石城县| 都江堰市| 榆树市| 临沂市| 额敏县|