#include <iostream>
class Phone
{
public:
virtual void useCall() = 0;
};
class XiaoMiPhone : public Phone
{
public:
virtual void useCall() override
{
std::cout<<"Hello it's Xiao Mi Phone"<<std::endl;
}
};
class HuaWeiPhone : public Phone
{
public:
virtual void useCall() override
{
std::cout<<"Hello it's Hua Wei Phone"<<std::endl;
}
};
enum PhoneType
{
XIAOMI,
HUAWEI
};
class PhoneFactory
{
public:
static Phone* createPhone(PhoneType type)
{
switch (type)
{
case PhoneType::XIAOMI:
return new XiaoMiPhone();
break;
case PhoneType::HUAWEI:
return new HuaWeiPhone();
break;
default:
return nullptr;
break;
}
}
};
int main()
{
Phone* xiaoMiPhone = PhoneFactory::createPhone(PhoneType::XIAOMI);
xiaoMiPhone->useCall();
delete xiaoMiPhone; xiaoMiPhone = nullptr;
Phone* huaWeiPhone = PhoneFactory::createPhone(PhoneType::HUAWEI);
huaWeiPhone->useCall();
delete huaWeiPhone; huaWeiPhone = nullptr;
system("pause");
return 0;
}
先静下心来看上面的C++代码。
我有一个手机模板,通过它可以在手机工厂创建各种手机,它们都支持手机模板的功能。——简单工厂模式