打字猴:1.700466061e+09
1700466061
1700466062 老大命令一下来,我立马带人过去调研,需求就一句话,但是真深入地调研还真不是那么简单。借聘人员虽然在我们公司干活,和我们一个样,干活时没有任何的差别,但是他们的人员信息、工资情况、福利情况等都是由劳动服务公司管理的,并且有一套自己的人员管理系统,人力资源部门就要求我们系统同步劳动服务公司的信息,当然是只要在我们公司工作的人员信息,其他人员信息是不需要的,而且还要求信息同步,也就是:劳动服务公司的人员信息一变更,我们系统就应该立刻体现出来,为什么要即时而不批量呢?是因为我们公司与劳动服务公司之间是按照人头收费的,甭管是什么人,只要我们公司借用,就这个价格,你要一个研究生,你派了一个高中生给我,那算什么事?因此,了解了业务需求用后,项目组决定采用RMI(Remote Method Invocation,远程对象调用)的方式进行联机交互,但是深入分析后,一个重大问题立刻显现出来:劳动服务公司的人员对象和我们系统的对象不相同,他们的对象如下所示。
1700466063
1700466064
1700466065
1700466066
1700466067 图19-2 劳动服务公司的人员信息类图
1700466068
1700466069 劳动服务公司是把人员信息分为了三部分:基本信息、办公信息和个人家庭信息,并且都放到了HashMap中,比如人员的姓名放到BaseInfo信息中,家庭地址放到HomeInfo中,这也是一个可以接受的模式,我们来看看他们的代码,接口如代码清单19-3所示。
1700466070
1700466071 代码清单19-3 劳动服务公司的人员信息接口
1700466072
1700466073 public interface IOuterUser{
1700466074
1700466075 //基本信息,比如名称、性别、手机号码等
1700466076
1700466077 public Map getUserBaseInfo();
1700466078
1700466079 //工作区域信息
1700466080
1700466081 public Map getUserOfficeInfo();
1700466082
1700466083 //用户的家庭信息
1700466084
1700466085 public Map getUserHomeInfo();
1700466086
1700466087 }
1700466088
1700466089 劳动服务公司的人员信息是这样存放的,如代码清单19-4所示。
1700466090
1700466091 代码清单19-4 劳动服务公司的人员实现
1700466092
1700466093 public class OuterUser implements IOuterUser{
1700466094
1700466095 /*
1700466096
1700466097 *用户的基本信息
1700466098
1700466099 */
1700466100
1700466101 public Map getUserBaseInfo(){
1700466102
1700466103 HashMap baseInfoMap=new HashMap();
1700466104
1700466105 baseInfoMap.put(“userName”,“这个员工叫混世魔王……”);
1700466106
1700466107 baseInfoMap.put(“mobileNumber”,“这个员工电话是……”);
1700466108
1700466109 return baseInfoMap;
1700466110
[ 上一页 ]  [ :1.700466061e+09 ]  [ 下一页 ]