代码的逻辑:
class Phone //纯虚手机产品类,提供接口
{
public:
virtual void call(string number) = 0;
};
class IosPhone :public Phone//产品类,继承纯虚类,并实现接口
{
public:
virtual void call(string number)
{
cout<<"IosPhone is calling,,,"<<endl;
}
};
class AndroidPhone :public Phone//产品类,继承纯虚类,并实现接口
{
public:
virtual void call(string number)
{
cout<<"AndroidPhone is calling"<<endl;
}
};
class PhoneFactory//纯虚手机工厂类,提供接口
{
public:
virtual Phone* CreatePhone()=0;
};
class IosPhoneFactory :public PhoneFactory//手机工厂类,继承纯虚类,实现接口
{
public:
virutal Phone* CreatePhone()
{
return new IosPhone();
}
};
class AndroidPhoneFactory :public PhoneFactory//手机工厂类,继承纯虚类,实现接口(创建手机)
{
public:
virutal void CreatePhone()
{
return new AndroidPhone();
}
}
void main()
{
PhoneFactory *IosPhoneCreator = new IosPhoneFactory();
PhoneFactory *AndroidPhoneCreator = new AndroidPhoneFactory();
Phone * IosPhone = IosPhoneCreator->CreatePhone();
Phone * AndroidPhone = AndroidPhoneCreator->CreatePhone();
}