0x00 记一下简单工厂模式
#include <stdio.h>
#include <string.h>
class Fruit
{
public:
virtual void GetFruit() = 0;
};
class Banana : public Fruit
{
public:
virtual void GetFruit()
{
printf("i'm Banana!\n");
}
};
class Apple : public Fruit
{
public:
virtual void GetFruit()
{
printf("i'm Apple!\n");
}
};
class Factory
{
public:
Fruit* CreateFruit(char *name){
if(strcmp(name, "banana") == 0){
return new Banana;
}
else if(strcmp(name, "apple") == 0){
return new Apple;
}
else{
return NULL;
}
}
};
int main()
{
Factory * factory = New Factory;
Fruit * fruit = NULL;
fruit = factory->CreateFruit("banana");
fruit->GetFruit();
delete fruit;
fruit = factory->CreateFruit("apple");
fruit->GetFruit();
delete fruit;
delete factory;
return 0;
}
输出结果
i
i