適配器模式 Adapter

適配器模式 Adapter

動機(Motivation)

  • 在軟件系統中,因爲應用環境的變化,經常須要將「一些現存的對象」放在新的環境中應用,可是新環境要求的接口是這些現存對象所不知足的。
  • 如何應對這種「遷移的變化」?如何既能利用現有對象的良好實現,同時又能知足新的應用環境所要求的接口?

咱們身邊的 Adapter

  • 水龍頭轉換器
  • VGA 轉換器
  • 筆記本電腦電源線等

模式定義

將一個類的接口轉換成客戶但願的另外一個接口。Adapter 模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。——《設計模式》GoFjava

結構(Structure)

  • 對象適配器結構

  • 類適配器結構

要點總結

  • Adapter 模式主要應用於「但願複用一些現存的類,可是接口又與複用環境要求不一致的狀況」,在遺留代碼複用、類庫遷移等方面很是有用。
  • Gof 23 定義了兩種 Adapter 模式的實現結構:對象適配器和類適配器。但類適配器採用「多繼承」的實現方式,通常不推薦使用。對象適配器採用「對象組合」的方式,更符合鬆耦合精神。
  • Adapter 模式能夠實現的很是靈活,沒必要拘泥於 Gof 23 中定義的兩種結構。例如,徹底能夠將 Adapter 模式中的「現存對象」做爲新的接口方法參數,來達到適配的目的。

代碼實現

模擬場景:三孔的聯想筆記本電腦,經過插座使用支了持二孔插頭的電源git

適配器-示例代碼github

適配器示例代碼類圖以下:設計模式

相關文章
相關標籤/搜索