日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java适配器模式

發布時間:2024/9/30 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java适配器模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.blogjava.net/fancydeepin/archive/2012/08/05/java_pattern_Adapter.html

適配器模式Adapter 模式),將一個類的接口轉換成客戶希望的另外一個接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

1. 類的適配器模式結構圖:



從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個中間環節,

即 Adapter 類(適配器類),把 Adaptee 的 API 與?Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是繼承關系,這就決定了這個適配器的模式是類。

示意圖的實現源碼:

package pattern.adapter; /*** -----------------------------------------* @描述 源類(需要適配的類)* @作者 fancy* @郵箱 fancydeepin@yeah.net* @日期 2012-8-5 <p>* -----------------------------------------*/ public class Adaptee {public void operation1(){//do other things here} }package pattern.adapter; /*** -----------------------------------------* @描述 目標接口* @作者 fancy* @郵箱 fancydeepin@yeah.net* @日期 2012-8-5 <p>* -----------------------------------------*/ public interface Target {public void operation1();public void operation2();}package pattern.adapter; /*** -----------------------------------------* @描述 適配器* @作者 fancy* @郵箱 fancydeepin@yeah.net* @日期 2012-8-5 <p>* -----------------------------------------*/ public class Adapter extends Adaptee implements Target{public void operation2(){//do other things here} }


2. 對象的適配器模式結構圖:



從圖中可以看出,Adaptee 類(源類)并沒有 operation2() 這個方法,而客戶端正期待這個方法,為使客戶端能夠使用 Adaptee 類,在此為其提供了一個包裝類,

即 Adapter 類(適配器類),它包裝了一個 Adaptee 類的實例,從而此包裝類能夠把 Adaptee 的 API 與?Target 的 API 銜接起來,在這里,Adapter 與 Adaptee 是委派關系,

這就決定了這個適配器的模式是對象。

示意圖中的 Target 和 Adaptee 源代碼不變,下面來看一下 Adapter 類的源碼:




package pattern.adapter; /*** -----------------------------------------* @描述 適配器* @作者 fancy* @郵箱 fancydeepin@yeah.net* @日期 2012-8-5 <p>* -----------------------------------------*/ public class Adapter implements Target{private Adaptee adaptee;public Adapter(Adaptee adaptee){this.adaptee = adaptee;}@Overridepublic void operation1() {adaptee.operation1();}@Overridepublic void operation2() {//do other things here}}


與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java适配器模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。