gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

Java設計模式解析之適配器模式(實例詳解)

本篇文章給大家帶來了關于java的相關知識,其中主要介紹了設計模式相關問題,主要講了其中的適配器模式,適配器模式主要用于將一個類的接口轉化成客戶端希望的目標類格式,使得原本不兼容的類可以在一起工作,將目標類和適配者類解耦,希望對大家有幫助。

Java設計模式解析之適配器模式(實例詳解)

推薦學習:《java視頻教程》

一、什么是適配器模式:

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

所以,適配器模式比較適合以下場景:

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

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

Java設計模式解析之適配器模式(實例詳解)

Java設計模式解析之適配器模式(實例詳解)

二、適配器模式的三種實現方式:

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

1、類的適配器模式:

Java設計模式解析之適配器模式(實例詳解)

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

運行結果:

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

2、對象的適配器模式:

Java設計模式解析之適配器模式(實例詳解)

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

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

3、接口的適配器模式:

有時我們寫的一個接口中有多個抽象方法,當我們寫該接口的實現類時,必須實現該接口的所有方法,這明顯有時比較浪費,因為并不是所有的方法都是我們需要的,有時只需要某一些,此處為了解決這個問題,我們引入了接口的適配器模式,借助于一個抽象類,該抽象類實現了該接口,實現了所有的方法,而我們不和原始的接口打交道,只和該抽象類取得聯系,所以我們寫一個類,繼承該抽象類,重寫我們需要的方法就行。看一下類圖:

Java設計模式解析之適配器模式(實例詳解)

這個很好理解,在實際開發中,我們也常會遇到這種接口中定義了太多的方法,以致于有時我們在一些實現類中并不是都需要。看代碼:

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(); 	} }

運行結果:

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

推薦學習:《java視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
免费久久久久久| 国产乱子伦精品无码专区| 在线无限看免费粉色视频| 男人天堂新网址| 三上悠亚免费在线观看| 色婷婷一区二区三区av免费看| 少妇人妻在线视频| 国产精品沙发午睡系列| 亚洲 中文字幕 日韩 无码| 婷婷六月天在线| 日本999视频| 亚洲黄色片免费| 国产日产欧美一区二区| 成人免费看片'免费看| 大片在线观看网站免费收看| 国产高清不卡无码视频| www国产无套内射com| 日本五级黄色片| 无码人妻丰满熟妇区96| 在线观看国产一级片| 岛国av在线免费| 国产免费一区二区三区四在线播放 | 一区二区三区四区毛片| 午夜视频在线瓜伦| 日日夜夜精品视频免费观看| 中文字幕精品在线播放| 欧美a v在线播放| 中文字幕66页| 成人污网站在线观看| 欧在线一二三四区| 91精品国产毛片武则天| 国产日韩一区二区在线| 成人性生交视频免费观看| 老太脱裤子让老头玩xxxxx| 超碰在线人人爱| 男人的天堂avav| 中文字幕一区久久| 欧美视频在线播放一区| 做爰高潮hd色即是空| 欧美精品久久久久久久久久久| 一级在线免费视频| 免费国产a级片| 欧美亚洲视频一区| 亚洲精品视频导航| 欧美丰满熟妇bbbbbb百度| 国产999免费视频| wwww.国产| www.浪潮av.com| av在线免费观看国产| 中文字幕资源在线观看| 中文字幕在线观看第三页| 免费人成在线观看视频播放| 免费看啪啪网站| 一本一道久久a久久综合蜜桃| 九九爱精品视频| 91大学生片黄在线观看| 在线播放免费视频| 性生活免费在线观看| 日本三级免费观看| www.99热这里只有精品| 蜜臀精品一区二区| 人人妻人人澡人人爽欧美一区双 | 午夜免费视频网站| 亚洲一区精品视频在线观看| 欧美成人黄色网址| 中文字幕av不卡在线| 青青草av网站| 一区二区在线免费看| 日本888xxxx| 日日噜噜噜噜久久久精品毛片| 美女黄色片视频| 亚洲一级片网站| 欧美激情第一区| 亚洲一区 在线播放| 日韩人妻一区二区三区蜜桃视频| 91蝌蚪视频在线| www.avtt| 欧美成人免费高清视频| 亚洲色图 在线视频| 91精品999| www婷婷av久久久影片| 久久综合九色综合88i| www.国产区| 成年人免费观看的视频| 欧美中文字幕在线观看视频 | 亚洲 国产 图片| 成年人三级视频| 日本免费不卡一区二区| 另类小说第一页| 日韩中文字幕亚洲精品欧美| 国产精品无码人妻一区二区在线| 成人av一级片| 99亚洲精品视频| 高清在线观看免费| 亚洲综合123| 久久久久久久久久久视频| 亚洲涩涩在线观看| 欧美亚洲日本一区二区三区| 无码内射中文字幕岛国片| 男女视频在线观看网站| 欧美三级一级片| 中文字幕免费高| 日日碰狠狠丁香久燥| 嫩草影院中文字幕| www.这里只有精品| www.爱色av.com| 欧洲美女和动交zoz0z| 中文字幕第21页| a级免费在线观看| 欧美激情国内自拍| 日韩有码免费视频| 国产 日韩 欧美在线| 四虎影院一区二区| www.日本一区| 播放灌醉水嫩大学生国内精品| 成人高清在线观看视频| 91精品999| 久久精品一区二| www精品久久| 日韩国产小视频| 最近中文字幕免费mv| 三级a在线观看| 蜜臀视频一区二区三区| 日本手机在线视频| 轻点好疼好大好爽视频| 热这里只有精品| 在线观看av免费观看| 日本老熟妇毛茸茸| 哪个网站能看毛片| 亚洲午夜无码av毛片久久| 少妇av一区二区三区无码| 日韩中字在线观看| 日韩中字在线观看| 国产在线观看福利| 男女高潮又爽又黄又无遮挡| 五月丁香综合缴情六月小说| a级黄色小视频| 国产精品50p| 亚洲色精品三区二区一区| 欧美a v在线播放| 亚洲一区二区福利视频| 国产一区二区三区精彩视频 | 春日野结衣av| 日韩一级片播放| 在线不卡一区二区三区| 妞干网这里只有精品| 黄色网络在线观看| 9久久9毛片又大又硬又粗| 亚洲欧洲日产国码无码久久99| 美女喷白浆视频| 亚洲欧美日韩一二三区| 久久久国内精品| 国产在线青青草| 日本精品一区在线| 伊人再见免费在线观看高清版 | 9色视频在线观看| 国产一区二区三区精彩视频 | 免费观看国产精品视频| 丁香啪啪综合成人亚洲| 午夜福利123| 大肉大捧一进一出好爽视频| av视屏在线播放| 日韩精品久久一区二区| 免费黄色一级网站| 人妻av无码专区| 中文字幕 日韩 欧美| 91午夜在线观看| www.超碰97.com| 91免费黄视频| 日本免费在线视频观看| 欧美两根一起进3p做受视频| 福利在线小视频| 少妇网站在线观看| 国产婷婷一区二区三区| 成人高清在线观看视频| 丰满人妻中伦妇伦精品app| 特级西西444| 中文字幕第22页| 欧洲熟妇精品视频| 日韩免费视频播放| 久久精品在线免费视频| 欧美午夜精品理论片| 激情综合网婷婷| 国产精品国产亚洲精品看不卡| 亚洲精品在线视频播放| 91极品视频在线观看| 国模吧无码一区二区三区| 青青在线免费观看| 国产又粗又长又爽视频| 手机在线观看日韩av| 久久6免费视频| 亚洲午夜激情影院| 99热这里只有精品在线播放| 成年人免费在线播放| 日本wwww视频| 国产男女在线观看| 50路60路老熟妇啪啪| 激情网站五月天| 黄色免费网址大全| 午夜在线观看av|