本公司接口如下
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;
}
}
我是菜鳥,我在路上。