第一种分类:简单工厂模式
简单工厂模式,使用工厂的创建产品函数(参数为要创建的产品)创建产品。
main
{
定义工厂指针 *pSimpleHumanFactory
定义产品指针 并使用工厂指针创建产品A赋值给产品指针 IHuman *pYellowHuman = pSimpleHumanFactory->CreateHuman("YellowHuman");
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}
第二种分类:模板工厂模式
模板工厂模式,先定义产品模板工厂(也就是此工厂只能生产此类产品)。然后调用工厂的创建产品函数创建产品
main
{
定义产品模板工厂 StandardHumanFactory<YellowHuman> standardHumanFactory;
调用工厂的创建产品函数创建产品,赋值给产品指针 IHuman *pYellowHuman = standardHumanFactory.CreateHuman();
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}
第三种分类:工厂方法模式
工厂方法模式,先定义某种产品工厂指针(也就是一种工厂只生产一种产品,产品和工厂都有对应的接口类)。然后调用工厂的创建产品函数创建产品
main
{
定义产品模板工厂 IHumanFactory *pHumanFactory = new YellowHumanFactory();
调用工厂的创建产品函数创建产品,赋值给产品指针 IHuman *pYellowHuman = standardHumanFactory.CreateHuman();
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}
简单工厂模式,使用工厂的创建产品函数(参数为要创建的产品)创建产品。
main
{
定义工厂指针 *pSimpleHumanFactory
定义产品指针 并使用工厂指针创建产品A赋值给产品指针 IHuman *pYellowHuman = pSimpleHumanFactory->CreateHuman("YellowHuman");
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}
第二种分类:模板工厂模式
模板工厂模式,先定义产品模板工厂(也就是此工厂只能生产此类产品)。然后调用工厂的创建产品函数创建产品
main
{
定义产品模板工厂 StandardHumanFactory<YellowHuman> standardHumanFactory;
调用工厂的创建产品函数创建产品,赋值给产品指针 IHuman *pYellowHuman = standardHumanFactory.CreateHuman();
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}
第三种分类:工厂方法模式
工厂方法模式,先定义某种产品工厂指针(也就是一种工厂只生产一种产品,产品和工厂都有对应的接口类)。然后调用工厂的创建产品函数创建产品
main
{
定义产品模板工厂 IHumanFactory *pHumanFactory = new YellowHumanFactory();
调用工厂的创建产品函数创建产品,赋值给产品指针 IHuman *pYellowHuman = standardHumanFactory.CreateHuman();
使用产品指针调用产品功能函数 pYellowHuman->Cry();
}