0、基本定义
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
通俗的讲,在不改变老系统的功能接口情况下,作向下兼容。
spring中以Adapter结尾的都是。
1、实例代码(类间继承)
功能:对原来对账号密码登入方式,添加第三方登入。
老接口:
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; } }
2、使用场景:
主要针对老系统的改造、接口的不兼容。补偿模式
3、优点:
》可以让两个没有关系对类在一起运行
》增加了透明性
》提高了类的复用度
》灵活性好
4、总结
适配器有两种模式。一种是前面讲到的 类间继承,还有一种是 对象适配器,是对象的合成关系。
====================================
记笔记好难,写心得更难。真是东拼西凑啊
===================================
参考资料:
咕泡学院
《设计模式之蝉》