適配器模式(Adapter Pattern)又叫做變壓器模式,變壓器把一種電壓變換為另一種電壓。 定義: 將一個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作。 適配器模式就是將一個介面或類轉換成其它的介面或類,適配器相當於一個包裝器,類圖如下所示 ...
適配器模式(Adapter Pattern)又叫做變壓器模式,變壓器把一種電壓變換為另一種電壓。
定義:
- 將一個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作。
適配器模式就是將一個介面或類轉換成其它的介面或類,適配器相當於一個包裝器,類圖如下所示。
適配器涉及以下3個角色。
- 目標(Target)角色:定義要轉換成的目標介面。
- 源(Adaptee)角色:需要被轉換成目標角色的源角色。
- 適配器(Adapter)角色:是適配器模式的核心,其職責是通過繼承或是類關聯的方式,將源角色轉換為目標角色。
Adaptee.java
// 源角色 public class Adaptee { public void specificRequest() { System.out.println("原有業務處理"); } }
Target.java
public interface Target { public void request(); }
Adapter.java
public class Adapter extends Adaptee implements Target { @Override public void request() { super.specificRequest(); } }
Client.java
public class Client { public static void main(String[] args) { // 適配器模式應用 Target target = new Adapter(); target.request(); } }
優點:
- 適配器模式可以讓兩個沒有任何關係的類在一起運行。
- 增加了類的透明性。
- 提高了類的復用度。
- 增強代碼的靈活性。
使用場景:
- 修改一個已經投產中的系統時,需要對系統進行擴展,此時使用一個已有的類,但這個類不符合系統中的介面,這時使用適配器模式是最合適的,它可以將不符合系統介面的類進行轉換,轉換成符合系統介面的、可以使用的類。
摘自:
青島東合信息技術有限公司 . 設計模式(Java版) . 電子工業出版社,2012,83-85.