打字猴:1.700466735e+09
1700466735 return userName;
1700466736
1700466737 }
1700466738
1700466739 }
1700466740
1700466741 大家只要注意一下黑色字体的构造函数就可以了,它接收三个对象,其他部分变化不大,只是变量名称进行了修改,我们再来看场景类,如代码清单19-20所示。
1700466742
1700466743 代码清单19-20 场景类
1700466744
1700466745 public class Client{
1700466746
1700466747 public static void main(String[]args){
1700466748
1700466749 //外系统的人员信息
1700466750
1700466751 IOuterUserBaseInfo baseInfo=new OuterUserBaseInfo();
1700466752
1700466753 IOuterUserHomeInfo homeInfo=new OuterUserHomeInfo();
1700466754
1700466755 IOuterUserOfficeInfo officeInfo=new OuterUserOfficeInfo();
1700466756
1700466757 //传递三个对象
1700466758
1700466759 IUserInfo youngGirl=new OuterUserInfo(baseInfo,homeInfo,officeInfo);
1700466760
1700466761 //从数据库中查到101个
1700466762
1700466763 for(int i=0;i<101;i++){
1700466764
1700466765 youngGirl.getMobileNumber();
1700466766
1700466767 }
1700466768
1700466769 }
1700466770
1700466771 }
1700466772
1700466773 运行的结果还是相同的。大家想想看,OuterUserInfo变成了委托服务,把IUserInfo接口需要的所有的操作都委托给其他三个接口下的实现类,它的委托是通过对象层次的关联关系进行委托的,而不是继承关系。好了,讲了这么多,我们需要给这种适配器起个名字,就是对象适配器,我们之前讲的通过继承进行的适配,叫做类适配器。对象适配器的通用类图,如图19-9所示。
1700466774
1700466775
1700466776
1700466777
1700466778 图19-9 对象适配器类图
1700466779
1700466780 适配器的通用代码也比较简单,把原有的继承关系变更为关联关系就可以了,不再赘述。对象适配器和类适配器的区别是:类适配器是类间继承,对象适配器是对象的合成关系,也可以说是类的关联关系,这是两者的根本区别。二者在实际项目中都会经常用到,由于对象适配器是通过类间的关联关系进行耦合的,因此在设计时就可以做到比较灵活,比如修补源角色的隐形缺陷,关联其他对象等,而类适配器就只能通过覆写源角色的方法进行扩展,在实际项目中,对象适配器使用到场景相对较多。
1700466781
1700466782
1700466783
1700466784
[ 上一页 ]  [ :1.700466735e+09 ]  [ 下一页 ]