久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

本篇文章給大家?guī)砹岁P(guān)于java的相關(guān)知識(shí),其中主要介紹了設(shè)計(jì)模式相關(guān)問題,主要講了其中的適配器模式,適配器模式主要用于將一個(gè)類的接口轉(zhuǎn)化成客戶端希望的目標(biāo)類格式,使得原本不兼容的類可以在一起工作,將目標(biāo)類和適配者類解耦,希望對(duì)大家有幫助。

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

推薦學(xué)習(xí):《java視頻教程》

一、什么是適配器模式:

適配器模式主要用于將一個(gè)類的接口轉(zhuǎn)化成客戶端希望的目標(biāo)類格式,使得原本不兼容的類可以在一起工作,將目標(biāo)類和適配者類解耦;同時(shí)也符合“開閉原則”,可以在不修改原代碼的基礎(chǔ)上增加新的適配器類;將具體的實(shí)現(xiàn)封裝在適配者類中,對(duì)于客戶端類來說是透明的,而且提高了適配者的復(fù)用性但是缺點(diǎn)在于更換適配器的實(shí)現(xiàn)過程比較復(fù)雜。

所以,適配器模式比較適合以下場(chǎng)景:

  • (1)系統(tǒng)需要使用現(xiàn)有的類,而這些類的接口不符合系統(tǒng)的接口。
  • (2)使用第三方組件,組件接口定義和自己定義的不同,不希望修改自己的接口,但是要使用第三方組件接口的功能。

下面兩個(gè)非常形象的例子很好地說明了什么是適配器模式:

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

二、適配器模式的三種實(shí)現(xiàn)方式:

適配器模式主要分成三類:類的適配器模式、對(duì)象的適配器模式、接口的適配器模式。

1、類的適配器模式:

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

  • 目標(biāo)接口(Target):客戶所期待的接口。目標(biāo)可以是具體的或抽象的類,也可以是接口。
  • 需要適配的類(Adaptee):需要適配的類或適配者類。
  • 適配器(Adapter):通過包裝一個(gè)需要適配的對(duì)象,把原接口轉(zhuǎn)換成目標(biāo)接口。
// 已存在的、具有特殊功能、但不符合我們既有的標(biāo)準(zhǔn)接口的類 class Adaptee { 	public void specificRequest() { 		System.out.println("被適配類具有 特殊功能..."); 	} }   // 目標(biāo)接口,或稱為標(biāo)準(zhǔn)接口 interface Target { 	public void request(); }   // 具體目標(biāo)類,只提供普通功能 class ConcreteTarget implements Target { 	public void request() { 		System.out.println("普通類 具有 普通功能..."); 	} }   // 適配器類,繼承了被適配類,同時(shí)實(shí)現(xiàn)標(biāo)準(zhǔn)接口 class Adapter extends Adaptee implements Target{ 	public void request() { 		super.specificRequest(); 	} }   // 測(cè)試類public class Client { 	public static void main(String[] args) { 		// 使用普通功能類 		Target concreteTarget = new ConcreteTarget(); 		concreteTarget.request(); 		 		// 使用特殊功能類,即適配類 		Target adapter = new Adapter(); 		adapter.request(); 	} }

運(yùn)行結(jié)果:

普通類 具有 普通功能... 被適配類具有 特殊功能...

2、對(duì)象的適配器模式:

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

// 適配器類,直接關(guān)聯(lián)被適配類,同時(shí)實(shí)現(xiàn)標(biāo)準(zhǔn)接口 class Adapter implements Target{ 	// 直接關(guān)聯(lián)被適配類 	private Adaptee adaptee; 	 	// 可以通過構(gòu)造函數(shù)傳入具體需要適配的被適配類對(duì)象 	public Adapter (Adaptee adaptee) { 		this.adaptee = adaptee; 	} 	 	public void request() { 		// 這里是使用委托的方式完成特殊功能 		this.adaptee.specificRequest(); 	} }   // 測(cè)試類 public class Client { 	public static void main(String[] args) { 		// 使用普通功能類 		Target concreteTarget = new ConcreteTarget(); 		concreteTarget.request(); 		 		// 使用特殊功能類,即適配類, 		// 需要先創(chuàng)建一個(gè)被適配類的對(duì)象作為參數(shù) 		Target adapter = new Adapter(new Adaptee()); 		adapter.request(); 	} }

測(cè)試結(jié)果與上面的一致。從類圖中我們也知道需要修改的只不過就是 Adapter 類的內(nèi)部結(jié)構(gòu),即 Adapter 自身必須先擁有一個(gè)被適配類的對(duì)象,再把具體的特殊功能委托給這個(gè)對(duì)象來實(shí)現(xiàn)。使用對(duì)象適配器模式,可以使得 Adapter 類(適配類)根據(jù)傳入的 Adaptee 對(duì)象達(dá)到適配多個(gè)不同被適配類的功能,當(dāng)然,此時(shí)我們可以為多個(gè)被適配類提取出一個(gè)接口或抽象類。這樣看起來的話,似乎對(duì)象適配器模式更加靈活一點(diǎn)。

3、接口的適配器模式:

有時(shí)我們寫的一個(gè)接口中有多個(gè)抽象方法,當(dāng)我們寫該接口的實(shí)現(xiàn)類時(shí),必須實(shí)現(xiàn)該接口的所有方法,這明顯有時(shí)比較浪費(fèi),因?yàn)椴⒉皇撬械姆椒ǘ际俏覀冃枰模袝r(shí)只需要某一些,此處為了解決這個(gè)問題,我們引入了接口的適配器模式,借助于一個(gè)抽象類,該抽象類實(shí)現(xiàn)了該接口,實(shí)現(xiàn)了所有的方法,而我們不和原始的接口打交道,只和該抽象類取得聯(lián)系,所以我們寫一個(gè)類,繼承該抽象類,重寫我們需要的方法就行。看一下類圖:

Java設(shè)計(jì)模式解析之適配器模式(實(shí)例詳解)

這個(gè)很好理解,在實(shí)際開發(fā)中,我們也常會(huì)遇到這種接口中定義了太多的方法,以致于有時(shí)我們?cè)谝恍?shí)現(xiàn)類中并不是都需要。看代碼:

public interface Sourceable { 	 	public void method1(); 	public void method2(); }

抽象類Wrapper2:

public abstract class Wrapper2 implements Sourceable{ 	 	public void method1(){} 	public void method2(){} }  public class SourceSub1 extends Wrapper2 { 	public void method1(){ 		System.out.println("the sourceable interface's first Sub1!"); 	} }  public class SourceSub2 extends Wrapper2 { 	public void method1(){ 		System.out.println("the sourceable interface's second Sub2!"); 	} }
public class WrapperTest {   	public static void main(String[] args) { 		Sourceable source1 = new SourceSub1(); 		Sourceable source2 = new SourceSub2(); 		 		source1.method1(); 		source1.method2(); 		source2.method1(); 		source2.method2(); 	} }

運(yùn)行結(jié)果:

the sourceable interface's first Sub1! the sourceable interface's second Sub2!

推薦學(xué)習(xí):《java視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
蜜臀久久久99精品久久久久久| 亚洲制服一区| 日韩三级视频| 狠狠干成人综合网| 国产精品三上| 精品日韩毛片| 99精品在线免费在线观看| 欧美日韩高清| 久久精品主播| 亲子伦视频一区二区三区| 欧美日韩一二| 亚洲h色精品| 欧美国产先锋| 97精品一区| 欧美激情另类| 黄色在线观看www| 超级白嫩亚洲国产第一| 成人在线免费观看网站| 精品欧美日韩精品| 国产精品亚洲一区二区在线观看| 日韩在线网址| 日韩av资源网| 日本精品一区二区三区在线观看视频 | 国产欧美一区| 日韩激情中文字幕| 国产亚洲精品v| 午夜亚洲精品| 天堂va蜜桃一区二区三区| 亚洲深夜影院| 久久高清免费观看| 亚洲专区欧美专区| 亚洲欧美视频| 香蕉成人久久| 亚洲久久一区| 日韩国产91| 国产精品白浆| 日本一区二区免费高清| av免费不卡国产观看| 日韩精品免费一区二区在线观看| 亚洲伦乱视频| 99精品一区| 亚洲高清毛片| 国产精品美女久久久| 国产精品丝袜xxxxxxx| 日韩中文字幕一区二区三区| 日本在线视频一区二区| 欧美一区免费| 欧美国产亚洲精品| 中文字幕在线免费观看视频| 日韩一级精品| 日韩激情一区二区| 精品三级av| 久久久久国产精品一区二区| 亚洲字幕久久| 久久99国产精品视频| 97在线精品| 亚洲精品乱码| 美女久久久精品| 亚洲天堂av影院| 婷婷综合国产| 成人在线超碰| 国产一级一区二区| 国产一区二区三区四区大秀| 91精品久久久久久久久久不卡| 亚洲专区一区| 国产精品美女久久久久久不卡| www在线观看黄色| 亚洲欧美日韩在线观看a三区| 国产三级一区| 久久九九国产| 视频一区二区三区中文字幕| 国产精品theporn| 日韩欧美国产精品综合嫩v| 蜜臀av国产精品久久久久| 亚洲日本网址| 国产精品chinese| 日韩精品一二区| 亚洲风情在线资源| 国产亚洲精品美女久久| 亚洲欧美网站| 久久九九99| 激情久久一区二区| 欧美精品国产白浆久久久久| 性色一区二区| 欧美不卡高清| 精品一区二区男人吃奶 | 国产视频久久| 国产网站在线| 欧美黑人做爰爽爽爽| 日韩三级久久| 丝袜诱惑制服诱惑色一区在线观看 | 国精品产品一区| 97久久超碰| 三级欧美韩日大片在线看| 亚洲特级毛片| 国产精品不卡| 国产精品久久久久9999高清| 中文字幕成人| 国产精品日韩久久久| 激情综合网站| 极品日韩av| 色在线中文字幕| 国产成人免费视频网站视频社区| 国产欧美一区二区三区国产幕精品| 亚洲天堂免费| 中文一区一区三区免费在线观| 美女少妇全过程你懂的久久| 日韩欧美看国产| 日韩黄色大片| 日韩一区三区| 亚洲www免费| 97精品国产一区二区三区 | 99视频精品视频高清免费| 国产传媒av在线| 国产精品99在线观看| 成人影视亚洲图片在线| 97精品97| 日韩欧美另类一区二区| 桃色一区二区| 99久久夜色精品国产亚洲1000部 | 精品国产乱码久久久| 免费亚洲婷婷| 欧美日韩亚洲国产精品| 国产日韩亚洲| 国产精品亚洲二区| 免费看一区二区三区| 精品精品久久| xxxxx性欧美特大| 91精品一区国产高清在线gif| 亚洲成人二区| 亚洲激情偷拍| 亚洲欧美在线专区| 欧美在线不卡| 国产精品久久久久久久久久久久久久久 | 精品一区91| 精品无人区麻豆乱码久久久| 国产成人77亚洲精品www| 精品国产成人| 日韩欧美网址| 99久久精品网站| 国产精品美女久久久浪潮软件| 午夜在线视频观看日韩17c| 在线精品国产亚洲| 亚洲精品系列| 欧美亚洲自偷自偷| 欧美日韩 国产精品| 国产精品久久国产愉拍| а√天堂8资源中文在线| 激情久久五月| 免费在线成人网| 国产亚洲观看| 高清不卡亚洲| 免费日韩av片| 国产精品三p一区二区| 肉色欧美久久久久久久免费看| 国产国产精品| 日韩高清不卡在线| 国产成人免费精品| 影院欧美亚洲| 国产精品中文| 亚洲精品88| 蜜桃视频第一区免费观看| 国产精品主播| 久久久9色精品国产一区二区三区| 久久xxxx精品视频| 国产精品扒开腿做爽爽爽软件| 亚洲涩涩在线| 亚洲精品大片| 国产在线看片免费视频在线观看| 性色一区二区| 精品国产一级| 野花国产精品入口| 国产精品成人3p一区二区三区| 久久国产主播| 欧美亚洲综合视频| 黄在线观看免费网站ktv| 国产精品免费看| 久久在线91| 免费看的黄色欧美网站| 你懂的国产精品永久在线| 欧美成人精品| 国产精品多人| 国产精品美女| 国产精品99一区二区三区| 视频一区二区中文字幕| 精品亚洲自拍| 一区二区三区四区日韩| 在线亚洲人成| 人人爱人人干婷婷丁香亚洲| 1024精品一区二区三区| 亚洲tv在线| 欧洲精品一区二区三区| 日韩高清一区在线| 亚洲福利一区| 久久久久伊人| 蜜桃视频在线观看一区| 高清不卡亚洲| 国产欧美日韩精品高清二区综合区| 不卡中文一二三区| 精品日韩一区|