其核心情况是,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;
}
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;
}