国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java設(shè)計(jì)模式之適配器模式(Adapter)

2019-11-26 13:20:34
字體:
供稿:網(wǎng)友

概述

將一個(gè)類的接口轉(zhuǎn)換成用戶希望的另外一個(gè)接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作。

兩種實(shí)現(xiàn)方式

1.類的適配器模式:
2.對(duì)象的適配器模式:

類的適配器模式的UML圖,如下:

類的適配器模式把適配的類的API轉(zhuǎn)換成為目標(biāo)類的API。

上圖設(shè)計(jì)的角色有:

目標(biāo)角色(Target):這就是所期待得到的接口。
源角色(Adapee):現(xiàn)在需要適配的接口。
適配器角色(Adapter):是本模式的核心,適配器把源接口轉(zhuǎn)換成目標(biāo)接口。

代碼示例:

interface Target{  void method1();  void method2(); //期待得到該方法}//源類中不具備method2中的方法。class Adaptee{  public void method1(){    System.out.println("method1");  }}class Adapter extends Adaptee implements Target{  @Override  public void method2() {    System.out.println("this is target method");  }}public class MainTest {  public static void main(String arg[]) {    Target target = new Adapter();    target.method2();  }}

對(duì)象的適配器模式的UMl圖,如下:

核心思路與類的適配器模式相同,只是將Adapter類修改,不繼承Adaptee類,而是持有Adaptee類的引用。代碼如下:

interface Target{  void method1();  void method2();}class Adaptee{  public void method1(){    System.out.println("method1");  }}class Adapter implements Target{  private Adaptee adaptee;  public Adapter(Adaptee adaptee){    this.adaptee = adaptee;  }  @Override  public void method2() {    System.out.println("this is target method");  }  @Override  public void method1() {    // TODO Auto-generated method stub    adaptee.method1();  }}public class MainTest {  public static void main(String arg[]) {    Target target = new Adapter(new Adaptee());    target.method2();  }}

適配器模式的優(yōu)缺點(diǎn):
更好的復(fù)用性,更好的擴(kuò)展性。系統(tǒng)需要使用現(xiàn)有的類,而此類的接口不符合系統(tǒng)的需要,那么通過適配器模式就可以讓這些功能得到更好的復(fù)用。在實(shí)現(xiàn)適配器功能的時(shí)候,可以調(diào)用自己開發(fā)的功能,從而自然地?cái)U(kuò)展系統(tǒng)的功能。
缺點(diǎn):過多的使用適配器,會(huì)讓系統(tǒng)非常凌亂,不易整體把握。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蒲城县| 新乐市| 太仓市| 板桥市| 大荔县| 郧西县| 千阳县| 咸阳市| 富源县| 菏泽市| 仁寿县| 黑河市| 孝义市| 龙江县| 东明县| 古交市| 阜阳市| 石棉县| 利川市| 常熟市| 嘉黎县| 满城县| 桦川县| 昌乐县| 敖汉旗| 新津县| 陈巴尔虎旗| 民乐县| 太谷县| 晋江市| 银川市| 曲阳县| 葵青区| 蒙自县| 清苑县| 邹平县| 锡林郭勒盟| 扶余县| 抚松县| 庆城县| 昌黎县|