什么是适配器模式?
适配器模式(英文:Adapter Pattern)将一类的接口转换为客户端期待的另一个接口,使原来因接口不匹配而无法工作的类可以一起工作。
一句话归纳
兼容转换头。
代码示例
在中国民用电都是220V,而美国民用电是110V,所以,我们使用电器时需要使用电源适配器做转换。
public class AC220 {
public int outputAC220V() { return 220; }
}
interface AC110 {
int outputAC110V();
}
class PowerAdapter implements AC110 {
private AC220 ac220;
public PowerAdapter(AC220 ac220) { = ac220;}
// 变压器
@Override
public int outputAC110V() { return ac220.outputAC220V() / 2; }
}
适用性
以下场景我建议你考虑使用:
- 已经存在的类,他的方法与新提出的需求不匹配(最终结果相同)的时候;
- 通过接口转换,把一个类插入到另一个类中;
- 比如我们现有一个登录接口,只支持账号密码登录,现在有新需求支持手机短信、微信登录、QQ登录、第三方登录等等。
局限性
以下场景我建议你谨慎使用:
- 开发之初不要考虑,他是亡羊补牢、江湖救急的时候考虑;
- 过多的适配器模式,会让一个系统更加混乱,比如明明调的是A接口,但通过适配器变成是调B接口。
对象适配器和类适配器
- 类适配器是类间继承,对象适配器是类的关联关系,这是两者的根本区别;
- 对象适配器是通过类间的关联关系进行耦合的,比如修补源角色的隐形缺陷,关联其他对象等;类适配器就只能通过覆写源角色的方法进行扩展;
- 在实际项目中,对象适配器使用到场景相对较多。
写在最后
好兄弟可以点赞并关注我的公众号“javaAnswer”,全部都是干货。