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一区二区
日韩视频 中文字幕| 粉嫩虎白女毛片人体| 中文字幕一区二区在线观看视频 | 鲁一鲁一鲁一鲁一色| 五月丁香综合缴情六月小说| 爆乳熟妇一区二区三区霸乳| 欧美老熟妇喷水| 亚洲综合日韩欧美| 亚洲人成无码www久久久| 日韩网站在线免费观看| 超碰在线97免费| 99免费视频观看| 国产av无码专区亚洲精品| 日韩极品视频在线观看| 日韩精品在线观看av| 国产精品久久久久久久av福利| 欧美少妇一级片| 一级片免费在线观看视频| 欧美男女交配视频| 欧美国产亚洲一区| 99精品视频播放| 亚洲无吗一区二区三区| 久草综合在线观看| 精品久久久久久中文字幕2017| 1024av视频| 大陆av在线播放| 夜夜添无码一区二区三区| 欧美久久在线观看| 97人人模人人爽人人澡| 一级片免费在线观看视频| 日本福利视频导航| 国产精品免费看久久久无码| 一本久道高清无码视频| 2022亚洲天堂| 91亚洲免费视频| 91热视频在线观看| 激情五月六月婷婷| 337p粉嫩大胆噜噜噜鲁| 国产精品一区二区小说| 天天操夜夜操很很操| 欧美a级免费视频| 国产精品12345| www.欧美日本| 中文字幕精品在线播放| 日韩一级性生活片| 久久人人爽av| 青青草av网站| www..com日韩| 婷婷视频在线播放| 牛夜精品久久久久久久| www.日本三级| 992tv人人草| 激情视频免费网站| 国产主播在线看| 奇米777四色影视在线看| 91制片厂毛片| 国产 porn| 男女无套免费视频网站动漫| 欧美黄网站在线观看| 欧美激情视频免费看| 欧美交换配乱吟粗大25p| 国产精品探花在线播放| 天天操天天爱天天爽| 成人免费观看视频在线观看| 国产原创popny丨九色| 国产情侣第一页| 日韩欧美精品免费| 日本精品福利视频| 精品国产乱码久久久久久1区二区| 青青草av网站| 亚洲狼人综合干| 国产免费999| 久久国产激情视频| av免费在线播放网站| 无码aⅴ精品一区二区三区浪潮 | theporn国产精品| 日本精品一区在线| 欧美日韩视频免费在线观看| 久久精品在线免费视频| 男人天堂av片| 好男人www社区| 日日干日日操日日射| 一级 黄 色 片一| 老司机激情视频| 国产极品在线视频| 人人妻人人添人人爽欧美一区| 欧美日韩二三区| 美女网站视频黄色| 香蕉精品视频在线| 国产欧美日韩网站| 黄色高清无遮挡| 99九九精品视频| 成人在线国产视频| 黑人粗进入欧美aaaaa| 手机在线免费毛片| 黄页网站大全在线观看| 黑森林福利视频导航| 日本黄色的视频| 久久手机在线视频| 欧美黄色性生活| 麻豆一区二区三区在线观看| av免费中文字幕| 美国av在线播放| 日韩欧美在线免费观看视频| 九一免费在线观看| 色婷婷综合网站| 精品这里只有精品| 黄色www在线观看| 欧美国产日韩在线播放| 嫩草影院中文字幕| gai在线观看免费高清| 亚洲熟妇国产熟妇肥婆| 日本77777| 91人人澡人人爽人人精品| 91大神免费观看| 我要看一级黄色大片| 丁香花在线影院观看在线播放 | 手机版av在线| 国产美女在线一区| 水蜜桃在线免费观看| wwwwwxxxx日本| 激情综合网俺也去| 欧美精品99久久| 搞av.com| 国产精品无码人妻一区二区在线| 天天操精品视频| 五月天视频在线观看| 欧美日韩第二页| 免费激情视频在线观看| 欧美日韩在线中文| 久久国产乱子伦免费精品| www.国产在线视频| 肉大捧一出免费观看网站在线播放| 国产自偷自偷免费一区 | 少妇人妻大乳在线视频| 女人色极品影院| 操bbb操bbb| 国产内射老熟女aaaa| 中文字幕超清在线免费观看| 一二三av在线| 肉色超薄丝袜脚交| 手机av在线网站| 男插女免费视频| 欧美一区二区视频在线播放| 日韩a级黄色片| 男人用嘴添女人下身免费视频| 9久久9毛片又大又硬又粗| 欧美韩国日本在线| 国产原创精品在线| 国产盗摄视频在线观看| 欧美久久在线观看| 久久久久人妻精品一区三寸| 亚洲无吗一区二区三区| 最新av在线免费观看| 丰满少妇久久久| 亚洲色图 在线视频| 国产盗摄视频在线观看| 激情伊人五月天| 57pao国产成永久免费视频| 国产人妻互换一区二区| 免费观看日韩毛片| 五月激情婷婷在线| 国产美女主播在线播放| 成熟老妇女视频| 久久久一二三四| 凹凸国产熟女精品视频| 黄色片免费网址| 情侣黄网站免费看| 激情视频小说图片| 中文字幕国产传媒| 国产毛片视频网站| 天天干天天曰天天操| 欧美视频第一区| 色哟哟免费网站| 天天干天天操天天玩| 国产美女永久无遮挡| 欧美激情国内自拍| 国产精品wwwww| 久久精品国产sm调教网站演员| 亚洲精品自拍网| 国产日韩一区二区在线观看| 浴室偷拍美女洗澡456在线| 天天爱天天操天天干| 国产老熟妇精品观看| h无码动漫在线观看| 大地资源第二页在线观看高清版| 国产免费999| 免费日韩中文字幕| 久久综合九色综合88i| 日韩免费在线观看av| 日韩人妻精品一区二区三区| 成年人三级黄色片| 中文字幕国产传媒| 污视频免费在线观看网站| 情侣黄网站免费看| 亚洲精品中文字幕无码蜜桃| 国产精品宾馆在线精品酒店| 91成人在线观看喷潮教学| 妞干网在线观看视频| 欧美日韩一道本|