8、适配器(Adapter)

其核心情况是,main的运行需要使用interface_need类接口,但是新的系统不能提供interface_need接口,不过有另一套接口interface_now类,interface_now可以完全实现interface_need接口的功能,那么将interface_now类接口转换成interface_need类接口形式。


interface_need有一下几个接口:
    string GetUserName();
    string GetHomeAddress();
    string GetMobileNumber();
    string GetOfficeTelNumber();
    string GetJobPosition();
    string GetHomeTelNumber();


而interface_now分别在类OuterUserBaseInfo、OuterUserHomeInfo、OuterUserOfficeInfo这三个类中实现了以上接口功能。


抽象出一个纯虚的接口形式类interface_need,之前的接口实现类为interface_old,现在继承interface_need实现一个interface_new类,在interface_new中利用interface_now的几个功能类来实现interface_need中所需接口的功能。


interface_new其类形式如下
interface_new : interface_need
{
    string GetUserName();
    string GetHomeAddress();
    string GetMobileNumber();
    string GetOfficeTelNumber();
    string GetJobPosition();
    string GetHomeTelNumber();
}


这样interface_out在所以用时就可以和interface_old类一样公用interface_need类型的指针来使用了,而且调用的接口也都完全一样。


接口功能实现方面如GetUserName,这个接口在OuterUserBaseInfo类中有string GetUserName()这样一个接口其功能相同,使用它来实现interface_new 类中的GetUserName()接口就可以了,其他接口类似。


main()
{
     IUserInfo *pYourGirl = new interface_old();


     pYourGirl->GetUserName();
     pYourGirl->GetHomeAddress();
     pYourGirl->GetMobileNumber();
     pYourGirl->GetOfficeTelNumber();
     pYourGirl->GetJobPosition();
     pYourGirl->GetHomeTelNumber();


     delete pYourGirl;
     


     *pYourGirl = new interface_new();


     pYourGirl->GetUserName();
     pYourGirl->GetHomeAddress();
     pYourGirl->GetMobileNumber();
     pYourGirl->GetOfficeTelNumber();
     pYourGirl->GetJobPosition();
     pYourGirl->GetHomeTelNumber();


     delete pYourGirl;




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值