類介面卡
抽象介面卡
* 定義:
* 將乙個類的介面, 轉換成客戶希望的另乙個類的介面, 使原本不相容的介面可以一起工作;
* 屬於結構性設計模式;
* 舉例:
* 電源介面卡;
* 適用場景:
* 不同產品/不同廠家提供的介面不同, 功能類似;
* 已經存在的類, 他的方法和需求不匹配, 但是功能類似的情況;
* 也就是說: 把乙個某一功能, 轉化為功能相似的另一功能;
* 介面卡模式一般和策略模式/委派模式/工廠模式結合使用;
* 介面卡模式在spring中的應用:
* 抽象介面卡advisoradapter: 面向切面變成的通知
* 抽象介面卡, 有通知功能;
* 介面卡: methodbeforeadviceadapter、afterreturningadviceadapter 、throwsadviceadapter;
* 適配為前置通知, 後置通知, 環繞通知;
* 介面卡模式優點:
* 提高**復用性;
* 目標類和適配類解耦;
* 符合開閉原則;
* 介面卡模式缺點:
* 如果大量使用介面卡模式, **閱讀性會大幅度降低;
* 三種介面卡模式:
* 物件介面卡;
* 類介面卡;
* 抽象介面卡;
簡介* 通過持有物件方式, 為方法提供適配;
**
介紹
* 220v輸入輸出, 轉換為220v輸入,5v輸出;
codepublic class ac220v
}
ac220v ac220 ;
public dc5vadapterforobject(ac220v ac220)
public int input()
public int output5v()
}
public static void main(string args)
簡介* 通過繼承的方式, 為方法提供適配;
code
介紹
* 220v輸入輸出, 轉換為220v輸入,5v輸出;
* 220v和物件介面卡通用;
public class dc5vadapterforclass extends ac220v
public int input()
}
public static void main(string args)
介紹* 提供乙個抽象介面卡, 具備介面卡的基礎功能;
* 具體介面卡實現抽象介面卡, 適配指定方法:
* 只需要關心 需要適配的抽象方法即可;
* 抽象介面卡注意鉤子的使用:
* 因為乙個抽象介面卡會存在多個實現;
code* 220v輸入輸出, 轉換為220v輸入,5v輸出;
* 220v和物件介面卡通用;
public abstract class poweradapter
//只需面向抽象實現;
public abstract int output5v();
public int output220v()
}
public class dc5vadapterforinte***ce extends poweradapter
//鉤子
public static boolean support(object poweradapter)
@override
public int output5v()
}
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...