設計模式之介面卡模式

2021-09-25 06:22:51 字數 2209 閱讀 3212

介面卡模式是指將乙個類的介面轉換成客戶期望的另乙個介面,使得原本的介面不相容的類可以一起工作。 屬於結構型設計模式。

使用場景:

1、已經存在的類,它的方法和需求不匹配(方法結果相同或相似)的情況。

2、介面卡模式不是軟體設計階段需要考慮的模式,是隨著軟體維護由於不同產品、不同廠家造成功能類似而介面不相同情況下的解決方案。

* @description:登陸

* @author: annecheng,2019-06-30 16:46

*/public class siginservice

public integer login(string username, string password)

}

/**

* @description:只做擴充套件

* @author: annecheng,2019-06-30 18:12

*/public inte***ce ipassportforthird

/** * @description:第三方登陸

* @author: annecheng,2019-06-30 18:16

*/public class passportforthirdadapter extends siginservice implements ipassportforthird

public integer loginforwechat(string openid)

public integer loginfortelphone(string telphone, string code)

private integer processlogin(object key, class extends loginadapter> clazz)

} catch (exception e)

return null;

}}/**

* @description:

* 這個接

* 口是可有可無的,不要跟模板模式混淆,

* 模板模式一定是抽象類,這裡僅僅只是乙個介面

* @author: annecheng,2019-06-30 18:18

*/public inte***ce loginadapter

/** * @description:qq

* @author: annecheng,2019-06-30 18:20

*/public class logininforqqadapter implements loginadapter

public integer login(object input)

}/**

* @description:手機號

* @author: annecheng,2019-06-30 18:20

*/public class logininfortelphoneadapter implements loginadapter

public integer login(object input)

}/**

* @author: annecheng,2019-06-30 18:20

*/public class logininforwechatadapter implements loginadapter

public integer login(object input)

}

support() – 判斷該類是否可以相容

login() – 具體的呼叫邏輯

類圖:

優點:1、提高類的透明性和復用,現有的類復用但不需要改變,符合開閉原則

2、目標類和介面卡類解耦,提高程式的擴充套件性。

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

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

設計模式之 介面卡模式

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

設計模式之介面卡模式

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