個人理解:
1. 介面卡模式屬於結構設計模式,有類介面卡、物件介面卡,示例**中androidphone為類介面卡、iphone為物件介面卡;
2. 示例**中power為電源類,有5v,10v,220v,iphone手機只有10v電壓才可開機使用,android手機只有5v電壓才可開機使用,高電壓可適配至低電壓,低電壓無法適配為高電壓;
3. 個人理解類適配、物件適配的區別:類適配需要適配的類自己實現適配介面,在類中實現適配方法;物件適配:新建個類專門處理適配,在需要適配的類中宣告適配物件變數,通過該變數實現適配方法;物件適配比類適配多了個適配的類
4. 適配在android中應用非常多,listview recycleview、gridview等的各種adapter,希望自己能專門寫篇該分析
示例**:
power為電源類:
public class powerpublic string getpower()
public void
setpower(string power)
}
手機抽象類:
public abstract class phone
適配介面:
public inte***ce adapter
androidphone實現類:
public class androidphone extends phone implements adapter else if (power.getpower().equals("220v")) else}@override
public void
start(power power) else
}}
iphone手機實現類:
public class iphone extends phonepublic
iphone(adapter adaper)
public void
setadaper(adapter adaper)
@override
public void
start(power power) else
}}
iphone adapter類實現:
public class iphoneadapter implements adapter else if (power.getpower().equals("220v")) else}}
呼叫方法:
private voidfactoryadapter()
方法執行結果:
11-29 16:29:07.647 824-824/com.wdp.designtest i/startwithadapter: ----------iphone傳入電壓非法,無法適配---------
11-29 16:29:07.647 824-824/com.wdp.designtest i/startwithadapter: ----------iphone傳入電壓為10v,無需適配---------
11-29 16:29:07.647 824-824/com.wdp.designtest i/startwithadapter: ----------iphone傳入電壓為220v,適配為10v,可正常開機---------
11-29 16:29:07.648 824-824/com.wdp.designtest i/startwithadapter: ----------android手機傳入電壓非法,無法適配---------
11-29 16:29:07.648 824-824/com.wdp.designtest i/startwithadapter: ----------android手機傳入5v電壓,無需適配---------
11-29 16:29:07.648 824-824/com.wdp.designtest i/startwithadapter: ----------android手機傳入220v電壓,適配為5v,可正常開機---------
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式 介面卡模式
01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...