介绍
适配器模式(adapter pattern)
使用场景
- 格式转换(把调用第三方获取的数据转换成自己格式)
案例
自己的业务接口
public interface UserDataService {
/**
* 返回 User 对象
* @return
*/
User getUser();
}
从本地数据库中查询用户对象
public class UserDataServiceImpl implements UserDataService {
@Override
public User getUser() {
System.out.println("从本地数据库中查询用户对象");
//模拟从数据库查询返回一个user对象
User user = new User();
user.setUserName("zing");
return user;
}
}
第三方的接口服务,同样是返回用户信息
public class OtherDataService {
/**
* 调用第三方接口返回的用户信息,是一个字符串
* @return
*/
public String getUser() {
System.out.println("调用第三方接口...");
return "user1";
}
}
第三方接口的适配器,与自身系统的业务接口进行对接
public class OtherDataAdapter implements UserDataService {
/**
* 声明第三方业务对象
*/
private OtherDataService service = new OtherDataService();
@Override
public User getUser() {
//调用第三方接口并返回字符串的信息
String userName = service.getUser();
//将字符串转换为内部接口的User对象
User user = new User();
user.setUserName(userName);
return user;
}
}
User 实体类
public class User {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}