將一個類的接口變換成客戶端所期待的另外一種接口,從而使本來因接口不匹配而沒法在一塊兒工做的兩個類可以在一塊兒工做。spring
通俗的講,在不改變老系統的功能接口狀況下,做向下兼容。設計模式
spring中以Adapter結尾的都是。spa
功能:對原來對帳號密碼登入方式,添加第三方登入。設計
老接口:code
public class SiginService { public ResultMsg regist(String userName, String ps) { //業務代碼 return new ResultMsg(0, "註冊成功", null); } public ResultMsg login(String userName, String pass) { return new ResultMsg(0, "登入成功", null); } }
擴展接口。 繼承對象
/** * 不動原來的方法,直接擴展新功能 * @author zzf * @date 2018/8/30 13:06. */ public class SiginForThirdService extends SiginService { public ResultMsg LoginForQQ(String openId) { return null; } public ResultMsg LoginForWechat(String openId) { return null; } public ResultMsg LoginForToken(String token) { return null; } public ResultMsg LoginForTelephone(String phone, String code) { return null; } public ResultMsg LoginForRegister(String userName, String password) { return null; } }
主要針對老系統的改造、接口的不兼容。補償模式blog
》能夠讓兩個沒有關係對類在一塊兒運行繼承
》增長了透明性token
》提升了類的複用度接口
》靈活性好
適配器有兩種模式。一種是前面講到的 類間繼承,還有一種是 對象適配器,是對象的合成關係。
====================================
記筆記好難,寫心得更難。真是東拼西湊啊
===================================
參考資料:
咕泡學院
《設計模式之蟬》