/*
* 适配器模式
* 优点
* 类的透明性
* 类的复用度
* 灵活性
*/
public class MyMain {
public static void main(String[] args) {
System.out.println("-----------------------------");
//A系统获取数据方式
AUserInfo aUserInfo=new AUserInfo("老ii", "099888", "男");
System.out.println(aUserInfo.getUserNameA());
System.out.println(aUserInfo.getUserPasswordA());
System.out.println(aUserInfo.getUserSexA());
System.out.println("-----------------------------");
//B系统获取数据方式
BUserInfo bUserInfo=new BUserInfo();
System.out.println(bUserInfo.getUserNameB(5));
System.out.println(bUserInfo.getUserPasswordB(5));
System.out.println(bUserInfo.getUserSexB(5));
System.out.println("-----------------------------");
//通过A系统获取用户数据的方式获取B系统的数据
IAUserInfo abUserInfo=new ABUserInfo();
System.out.println(abUserInfo.getUserNameA());
System.out.println(abUserInfo.getUserPasswordA());
System.out.println(abUserInfo.getUserSexA());
System.out.println("-----------------------------");
}
}
//A系统获取用户信息方式的接口
interface IAUserInfo{
//获取用户名,密码,性别
abstract public String getUserNameA();
abstract public String getUserPasswordA();
abstract public String getUserSexA();
}
//B系统获取用户信息方式的接口
interface IBUserInfo{
//获取用户名,密码,性别
abstract public String getUserNameB(int i);
abstract public String getUserPasswordB(int i);
abstract public String getUserSexB(int i);
}
//实现A接口的用户
class AUserInfo implements IAUserInfo{
String userName,userPassword,Sex;
public AUserInfo(String userName,String userPassword,String Sex) {
this.Sex=Sex;
this.userName=userName;
this.userPassword=userPassword;
}
@Override
public String getUserNameA() {
return userName;
}
@Override
public String getUserPasswordA() {
return userPassword;
}
@Override
public String getUserSexA() {
return Sex;
}
}
//实现B接口的用户
class BUserInfo implements IBUserInfo{
int count=0;
ArrayList<String> userNames=new ArrayList<>();
ArrayList<String> userPasswords=new ArrayList<>();
ArrayList<String> userSexs=new ArrayList<>();
//初始化数据
public BUserInfo() {
for(int i=0;i<10;i++)
{
userNames.add("老"+i);
userPasswords.add(i+"......."+i);
userSexs.add(i%2==1?"男":"女");
}
}
@Override
public String getUserNameB(int i) {
return userNames.get(i);
}
@Override
public String getUserPasswordB(int i) {
return userPasswords.get(i);
}
@Override
public String getUserSexB(int i) {
return userSexs.get(i);
}
}
//适配器
class ABUserInfo extends BUserInfo implements IAUserInfo{
public ABUserInfo() {
super();
}
@Override
public String getUserNameA() {
return getUserNameB(new Random().nextInt(10));
}
@Override
public String getUserPasswordA() {
return getUserPasswordB(new Random().nextInt(10));
}
@Override
public String getUserSexA() {
return getUserSexB(new Random().nextInt(10));
}
}
设计23式—适配器
最新推荐文章于 2025-08-10 08:32:47 发布