設計模式之介面卡模式

2021-08-25 14:34:33 字數 1663 閱讀 7418

介面卡模式將乙個類的介面,轉換成開發人員期望的另乙個介面,使用介面卡讓原本介面不相容的類可以相互合作。介面卡適合用於解決新舊系統(或新舊介面)之間的相容性問題,而不建議在一開始就直接使用。如果從一開始介面和介面之間就沒有相容問題,不要多此一舉使用介面卡模式,不要為了設計模式而設計模式。

介面卡模式有三種:類介面卡、物件介面卡、介面介面卡。

類介面卡

物件介面卡

介面介面卡

類介面卡是指通過繼承來實現介面卡的功能。

// 目標介面

public inte***ce target

// 需要適配的類

public class adaptee

}// 介面卡

public class adapter extends adaptee implements target

}// client

public class client

}

物件介面卡是指通過組合來實現介面卡功能。

// 目標類

public abstract class target

// 需要適配的類

public class adaptee

}// 介面卡

public class adapter extends target

}// client

public class client

}

介面介面卡是指,通過抽象類來適配,與上面兩種介面卡略有不同。考慮下面這種情況,乙個介面中有好多個方法,實現某個功能只用到其中的幾個方法,如果直接實現介面,就需要對所有的介面實現,即使對不需要的方法置空,也會顯得很臃腫。這個時候可以使用抽象類作為介面卡,抽象類實現全部介面,然後建立具體繼承類,重寫方法即可。

看下面的例子。比如外賣訂單在不同狀態下對應不同的操作,比如支付後通知賣家,外賣送出通知使用者,取消退款等。

// 訂單變化相關介面

public inte***ce orderchangeservice

// 預設實現

public abstract class defaultorderchangeservice implements orderchangeservice

@override

public void afterdelivery()

@override

public void aftercancel()

}// 通知商家已經支付

public class nofitysellerservice extends defaultorderchangeservice

}// 退款

public class refundservice extends defaultorderchangeservice

}

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...

設計模式之介面卡模式

介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...