Adapter(适配器)模式
生活随笔
收集整理的這篇文章主要介紹了
Adapter(适配器)模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Adapter 模式是一個常用的模式,它可以與其他很多模式共同使用
Adapter模式的意圖是 將一個類的接口轉換成希望的另外一種接口,Adapter模式使原本由接口不兼容而不能一起工作的那一些類可以起工作,就是說 需要一種方法,為一個內容合適但接口不配的對象創(chuàng)建一個新的接口,這樣把一個類的接口轉換成客戶端所期待的另一個接口,從而使原接口不匹配而無法在一起工作的兩個類能在一起工作
意圖:將一個無法控制的現(xiàn)有對象與一個特定的接口相匹配 問題:一個系統(tǒng)擁有正確的數(shù)據行為,但接口卻是錯誤的,典型用途:必須把某些東西實現(xiàn)為定義或已經擁有的抽象類的派生類 角色:目標(定義一個客戶端使用特定接口)、客戶(使用目標接口與和目標接口一致的對象合作)、被適配者(一個現(xiàn)存需要匹配的接口)、適配器(負責將接口轉換成目標) 解決方案:Adapter模式用需要的接口對無法修改的類進行包裝 參與者與協(xié)作者:Adapter 對 Adaptee 的接口進行適配,使它與Target(Adapter派生自它)相匹配。讓 Client 把 Adaptee 當作 Target 的一個類型來使用它 效果:Adapter 模式讓現(xiàn)存的對象適應新的結構,而不受接口的限制 實現(xiàn):將現(xiàn)存的類包含在另一個類之中。包容類與需要的接口相匹配,并調用被包容類的方法
許多模式都要求某些特定的派生自同一個類,如果已經有現(xiàn)存的類,可以用 Adapter模式將它與適當?shù)某橄箢愊噙m配
Adapter模式有兩種用類型: 1> 對象 Adapter 模式:使用 Adapter模式叫做對象Adapter模式,因為它依賴于一個對象(適配對象)包含另一個對象(被適配對象) 2> 類 Adapter 模式:實現(xiàn) Adapter模式的另一種方法是使用多重繼承,在這種情況下,它被稱為類 Adapter模式
Facade模式 與 Adapter模式的比較
Adapter模式將接口轉換成另一個現(xiàn)有的接口
如,示例代碼: public interface XmlReader { public InputStream xmlReader(); }
public interface ReaderXml { public InputStream readerXml(); }
public class B implements ReaderXml { @Override public InputStream readerXml() { return null ; } }
public class Adapter1 extends B implements XmlReader { @Override public InputStream xmlReader() { return readerXml(); } }
public class Adapter2 implements XmlReader { ReaderXml b = new B(); @Override public InputStream xmlReader() { return b .readerXml(); } }
Adapter模式的意圖是 將一個類的接口轉換成希望的另外一種接口,Adapter模式使原本由接口不兼容而不能一起工作的那一些類可以起工作,就是說 需要一種方法,為一個內容合適但接口不配的對象創(chuàng)建一個新的接口,這樣把一個類的接口轉換成客戶端所期待的另一個接口,從而使原接口不匹配而無法在一起工作的兩個類能在一起工作
意圖:將一個無法控制的現(xiàn)有對象與一個特定的接口相匹配 問題:一個系統(tǒng)擁有正確的數(shù)據行為,但接口卻是錯誤的,典型用途:必須把某些東西實現(xiàn)為定義或已經擁有的抽象類的派生類 角色:目標(定義一個客戶端使用特定接口)、客戶(使用目標接口與和目標接口一致的對象合作)、被適配者(一個現(xiàn)存需要匹配的接口)、適配器(負責將接口轉換成目標) 解決方案:Adapter模式用需要的接口對無法修改的類進行包裝 參與者與協(xié)作者:Adapter 對 Adaptee 的接口進行適配,使它與Target(Adapter派生自它)相匹配。讓 Client 把 Adaptee 當作 Target 的一個類型來使用它 效果:Adapter 模式讓現(xiàn)存的對象適應新的結構,而不受接口的限制 實現(xiàn):將現(xiàn)存的類包含在另一個類之中。包容類與需要的接口相匹配,并調用被包容類的方法
許多模式都要求某些特定的派生自同一個類,如果已經有現(xiàn)存的類,可以用 Adapter模式將它與適當?shù)某橄箢愊噙m配
Adapter模式有兩種用類型: 1> 對象 Adapter 模式:使用 Adapter模式叫做對象Adapter模式,因為它依賴于一個對象(適配對象)包含另一個對象(被適配對象) 2> 類 Adapter 模式:實現(xiàn) Adapter模式的另一種方法是使用多重繼承,在這種情況下,它被稱為類 Adapter模式
Facade模式 與 Adapter模式的比較
Adapter模式將接口轉換成另一個現(xiàn)有的接口
如,示例代碼: public interface XmlReader { public InputStream xmlReader(); }
public interface ReaderXml { public InputStream readerXml(); }
public class B implements ReaderXml { @Override public InputStream readerXml() { return null ; } }
public class Adapter1 extends B implements XmlReader { @Override public InputStream xmlReader() { return readerXml(); } }
public class Adapter2 implements XmlReader { ReaderXml b = new B(); @Override public InputStream xmlReader() { return b .readerXml(); } }
總結
以上是生活随笔為你收集整理的Adapter(适配器)模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抽象代数 01.01 群-运算及关系
- 下一篇: vue教程 html表单美化 与 vue