适配器模式(比较简单)
定义:将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作
说白了就是,将本不能接受的对象改成可以接受的对象,就是这么如此简单。
在很久很久以前,我们已经写好一个系统并且正常运行多年,但是为了更适应更多人使用,其他账号也可以登录该系统,
例如:
- 微信登录
- QQ登录
- 微博登录
怎么办,一下就慌了,这么多登录方式?每一个再单独写一套登录、注册,这样也太累了,突然灵机一动,以前的登录接口可以用,可以不可以包装一层,让新的登录方式和以前的一样不就行了吗?鉴于此,这种方式可行,那么我们就来看一下具体实现。具体步骤如下:
- 先注册生成账户
- 用唯一属性代替原有userName
- 登录
public class Login {
@Autowired
private LoginService loginService;
/**
* 微信登录
* @param openId
* @return
*/
public int loginByWechat(String openId){
//这里省略注册操作
//这里只有一个参数 全局唯一 可以看做为userName
//设置密码为null
loginService.login(openId,null);
return 1;
}
}
这里Login类就充当了适配器的角色,将原本不能其他登录的方式变得可行。(真实环境需求可能比这个困难,但还是换汤不换药,按照这种方式即可解决)
这就是一个简单适配器模式,将原来没有关系的两个类,包装一层,就能使他们共同工作了 ,是不是很简单,这里就偷个懒,在此结束。