本公司接口如下
public interface IUserInfo {
public String getUserName();
public String getHomeAddress();
public String getMobileNumber();
public String getOfficeTel();
public String getJobPosition();
public String getHomeTel();
}
//本系统
public class UserInfo implements IUserInfo {
public String getHomeAddress() {
System.out.println("这里是员工的家庭地址");
return null;
}
public String getHomeTel() {
System.out.println("员工的家庭电话是...");
return null;
}
public String getJobPosition() {
System.out.println("员工的职位");
return null;
}
public String getMobileNumber() {
System.out.println("员工的手机号码");
return null;
}
public String getOfficeTel() {
System.out.println("员工的办公室号码");
return null;
}
public String getUserName() {
System.out.println("员工姓名");
return null;
}
}
@SuppressWarnings("unchecked")
public interface IOuterUser {
public Map getUserBaseInfo();
public Map getUserOfficeInfo();
public Map getUserHomeInfo();
}
//另一个系统
public class OuterUser implements IOuterUser {
@SuppressWarnings("unchecked")
public Map getUserBaseInfo() {
HashMap baseInfoMap=new HashMap();
baseInfoMap.put("userName", "这个员工叫Jack");
baseInfoMap.put("mobileNumber", "这个员工电话号码是....");
return baseInfoMap;
}
@SuppressWarnings("unchecked")
public Map getUserHomeInfo() {
HashMap homeInfoMap=new HashMap();
homeInfoMap.put("homeTelNumber", "这个员工家庭号码是");
homeInfoMap.put("homeAddress", "这个员工家庭地址是....");
return homeInfoMap;
}
@SuppressWarnings("unchecked")
public Map getUserOfficeInfo() {
HashMap userOfficeInfoMap=new HashMap();
userOfficeInfoMap.put("jobPosition", "这个员工职位是");
userOfficeInfoMap.put("officeTelNumber", "这个员工办公号码是....");
return userOfficeInfoMap;
}
}
/*
* 适配器
* OuterUser为另一个系统的信息管理
* IUserInfo为自身系统接口
* so,问题就是解决在本系统的基础上再增加一个,完成对外来系统的包装,使得能在本系统使用
* 重心还是自身接口的实现,引入外来的源数据提供者OuterUser
*/
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 getHomeTel() {
return null;
}
//就不多写了
public String getJobPosition() {
return null;
}
//就不多写了
public String getMobileNumber() {
return null;
}
//就不多写了
public String getOfficeTel() {
return null;
}
//就不多写了
public String getUserName() {
return null;
}
}
我是菜鸟,我在路上。