介面卡模式

2021-10-13 17:34:16 字數 1708 閱讀 7385

介面卡模式

具體說介面卡模式之前,先來說說介面卡模式在哪些地方使用過。

1).首先就是sun公司推出的資料庫連線工具jdbc,jdbc給出了客戶端通用的抽象介面,每乙個具體的資料庫引擎的jdbc驅動都是介於jdbc驅動和資料庫引擎之間的介面卡。

2).另乙個就是spring aop裡的通知advice,在spring 的aop中,beforeadvice,afteradvice ,throwsadvice這三種通知都是借助介面卡模式來實現的,好處就是使用者可以向框架中加入自己想要的任何一種通知型別。

認識介面卡模式

1)定義:把乙個介面轉換成使用者希望的另乙個介面,使的原本不相容而不能一起工作的類可以一起工作。別名也叫包裝器。此外要注意介面卡模式可作為類介面卡模型也可以作為物件介面卡模型。

2)角色:target(魔表抽象類),adapter(介面卡類),adaptee(適配這者類)

模式詳解

(一)類介面卡

public class adapter extends adaptee implements target

}

(二)物件介面卡

public class adapter extends target

public void request()

}

物件介面卡模式在spring裡可以通過容器注入。

下面 通過乙個需求來說明介面卡模式

例子:某系統需要提供乙個加密模組,將使用者密碼加密之後存入到資料庫,為提高開發效率,需要重用已有的加密演算法凱撒加密也就是caesar類。

/**

* @author chunchun

*@date 2023年1月2日

* @projectname design_pattern

* 目標抽象類,目標資料操作類,相當於target

*/public abstract class dataoperstion

public void setpassword(string password)

public abstract string doencrypt(int key, string pass);

}

/**

* @author chunchun

*@date 2023年1月2日

* @projectname design_pattern

* 適配者類,執行資料加密(凱撒加密)

* 定義為final無法繼承,所以只能使用物件介面卡來實現適配

*/public final class caesar

if(c>='a'&&c<='z')

es+=c;

} return es;

}}

/**

* @author chunchun

*@date 2023年1月2日

* @projectname design_pattern

* 介面卡類實現加密適配

*/public class cipheradapter

public string doencrypt(int key, string ps)

public static void main(string args)

}

設計模式需要結合原始碼會受益良多。

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...