适配器模式
适配器模式(Adapter Pattern)的定义如下: Convert the interface of a class into another interface clients expect.Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.(将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。)
我们可以拿登录说明,有的人使用用户名和密码登录,有时候界面又需要第三方提供手机验证码登录。我们的用户名登录方式如下:
public interface UserService {
public boolean login(String username, String password);
}
而短信服务接口如下:
public class MessageService {
public int sendMessage(String phone) {
//业务逻辑
return 200;
}
}
发现返回的结果不一样,传参也不一样,这时候创建一个接口进行适配
public class LoginAdapter extends MessageService implements UserService {
@Override
public boolean login(String username, String password) {
if (password == null) {
if(this.sendMessage(username) == 200) {
return true;
}
}
//业务逻辑
//...
return false;
}
@Override
public int sendMessage(String phone) {
return super.sendMessage(phone);
}
}
我们可以重写用户名登录的业务代码,也可以通过初始化或者spring注入的方式引入原有逻辑,从而达到适配的目的。