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