php多语言网站开发,网页制作用什么软件,昆明抖音推广,wordpress 用户系统1.背景 适配器模式#xff0c;这个模式也很简单#xff0c;你笔记本上的那个拖在外面的黑盒子就是个适配器#xff0c;一般你在中国能用#xff0c;在日本也能用#xff0c;虽然两个国家的的电源电压不同#xff0c;中国是 220V#xff0c;日本是 110V#xff0c;但是这…1.背景 适配器模式这个模式也很简单你笔记本上的那个拖在外面的黑盒子就是个适配器一般你在中国能用在日本也能用虽然两个国家的的电源电压不同中国是 220V日本是 110V但是这个适配器能够把这些不同的电压转换为你需要的 36V 电压保证你的笔记本能够正常运行那我们在设计模式中引入这个适配器模式是不是也是这个意思呢
2.B接口转换为 A 接口怎么办继承能解决但是比较傻 通过适配器把 OuterUser 伪装成我们系统中一个 IUserInfo 对象
本系统的接口
public interface IUserInfo { //获得用户姓名public String getUserName(); //获得家庭地址public String getHomeAddress(); //手机号码这个太重要手机泛滥呀public String getMobileNumber(); //办公电话一般式座机public String getOfficeTelNumber(); //这个人的职位是啥public String getJobPosition(); //获得家庭电话这个有点缺德我是不喜欢打家庭电话讨论工作public String getHomeTelNumber(); }
这个接口的实现类
public class UserInfo implements IUserInfo { /* * 获得家庭地址下属送礼也可以找到地方*/public String getHomeAddress() { System.out.println(这里是员工的家庭地址....); return null; } /* * 获得家庭电话号码*/public String getHomeTelNumber() { System.out.println(员工的家庭电话是....); return null; } /* * 员工的职位是部门经理还是小兵*/public String getJobPosition() { System.out.println(这个人的职位是BOSS....); return null; } /* * 手机号码*/public String getMobileNumber() { System.out.println(这个人的手机号码是0000....); return null; } /* * 办公室电话烦躁的时候最好“不小心”把电话线踢掉我经常这么干对己对人都有好处*/public String getOfficeTelNumber() { System.out.println(办公室电话是....); return null; } /* * 姓名了这个老重要了*/public String getUserName() { System.out.println(姓名叫做...); return null;}
} 本系统程序运行
public class App { public static void main(String[] args) { //没有与外系统连接的时候是这样写的IUserInfo youngGirl new UserInfo(); //从数据库中查到101个for(int i0;i101;i){ youngGirl.getMobileNumber(); } }
}外部系统的接口
SuppressWarnings(all)
public interface IOuterUser { //基本信息比如名称性别手机号码了等public Map getUserBaseInfo(); //工作区域信息public Map getUserOfficeInfo(); //用户的家庭信息public Map getUserHomeInfo(); }外部系统的接口的实现类
SuppressWarnings(all)
public class OuterUser implements IOuterUser { /* * 用户的基本信息*/public Map getUserBaseInfo() { HashMap baseInfoMap new HashMap(); baseInfoMap.put(userName, 这个员工叫混世魔王....); baseInfoMap.put(mobileNumber, 这个员工电话是....);return baseInfoMap; } /* * 员工的家庭信息*/public Map getUserHomeInfo() { HashMap homeInfo new HashMap(); homeInfo.put(homeTelNumbner, 员工的家庭电话是....); homeInfo.put(homeAddress, 员工的家庭地址是....); return homeInfo; } /* * 员工的工作信息比如职位了等*/public Map getUserOfficeInfo() { HashMap officeInfo new HashMap(); officeInfo.put(jobPosition,这个人的职位是BOSS...); officeInfo.put(officeTelNumber, 员工的办公电话是....); return officeInfo; }
}外系统的用户信息包装成我们公司的人员信息呢看下面的 OuterUserInfo 类源码也就是 我们的适配器接口实现的是本系统的接口
SuppressWarnings(all)
public class OuterUserInfo extends OuterUser implements IUserInfo { private Map baseInfo super.getUserBaseInfo(); //员工的基本信息
private Map homeInfo super.getUserHomeInfo(); //员工的家庭 信息
private Map officeInfo super.getUserOfficeInfo(); //工作信息/* * 家庭地址*/
public String getHomeAddress() { String homeAddress (String)this.homeInfo.get(homeAddress); System.out.println(homeAddress); return homeAddress; }
/* * 家庭电话号码*/
public String getHomeTelNumber() { String homeTelNumber (String)this.homeInfo.get(homeTelNumber); System.out.println(homeTelNumber); return homeTelNumber; }
/* *职位信息*/
public String getJobPosition() { String jobPosition (String)this.officeInfo.get(jobPosition); System.out.println(jobPosition); return jobPosition; }
/* * 手机号码*/
public String getMobileNumber() { String mobileNumber (String)this.baseInfo.get(mobileNumber); System.out.println(mobileNumber); return mobileNumber; }
/*
* 办公电话*/
public String getOfficeTelNumber() { String officeTelNumber (String)this.officeInfo.get(officeTelNumber); System.out.println(officeTelNumber); return officeTelNumber; }
/* * 员工的名称*/
public String getUserName() { String userName (String)this.baseInfo.get(userName); System.out.println(userName); return userName; }
}运行
public class App {
public static void main(String[] args) { //没有与外系统连接的时候是这样写的//IUserInfo youngGirl new UserInfo();//老板一想不对呀兔子不吃窝边草还是找人力资源的员工好点IUserInfo youngGirl new OuterUserInfo(); //我们只修改了这一句好 OuterUserInfo 是适配器//从数据库中查到101个for(int i0;i101;i){ youngGirl.getMobileNumber(); } }
}