适配器模式

适配器模式

介绍

适配器模式(adapter pattern)

使用场景

  1. 格式转换(把调用第三方获取的数据转换成自己格式)

案例

自己的业务接口

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;
    }
}