定義:介面卡模式將乙個類的介面,轉化成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。
比如:讀卡器是作為記憶體卡和筆記本之間的介面卡。您將記憶體卡插入讀卡器,再將讀卡器插入筆記本,這樣就可以通過筆記本來讀取記憶體卡。
使用場景:有動機地修改乙個正常執行的系統的介面,這時應該考慮使用介面卡模式。
注意事項:介面卡不是在詳細設計時新增的,而是解決正在服役的專案的問題。
分類:介面卡分為物件介面卡和類介面卡兩種,兩種的工作原理不太一樣。
物件介面卡
物件介面卡是使用組合的方法,在adapter中會保留乙個原物件(adaptee)的引用,介面卡的實現就是講target中的方法委派給adaptee物件來做,用adaptee中的方法實現target中的方法。
類介面卡與物件介面卡不同的是,類介面卡是通過類的繼承來實現的。adpater直接繼承了target和adaptee中的所有方法,並進行改寫,從而實現了target中的方法。 php是單繼承的,所以target可以用介面的方式實現。
設計模式(四)介面卡設計模式
介面卡設計模式 定義 將某一普通類轉換成另乙個客戶希望變成的特殊類。介面卡有2種,一種為類介面卡 類介面卡 例子以某一球員為例 踢球的介面 踢球介面 author clark public inte ce play 普通球員類 普通球員類,實現踢球介面 author clark public cla...
設計模式 介面卡模式(簡要)(四)
讓本來不適合使用的介面變得適合使用 一次只能適配乙個類,使用有一定的侷限性 針對使用者操作的四種功能,增刪改查 public inte ce userdao 用普通類去實現介面,就必須四種全部實現 public class userdaoimpl implements userdao overrid...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...