一、意图:
定义一个用于创建对象的接口,让子类决定实例化哪个类;
二、结构图:
三、组成元素:
Product:工厂方法抽象的对象接口;
ConcreteProduct:具体对象实现类;
Creator:创建器接口,返回Product对象;
ConcreteCreator:实现Creator,返回ConcreteProduct对象;
四、代码实现:
#include "iostream" using namespace std; class Product { }; class ConcreteProduct:public Product { }; class Creator { public: virtual Product* FactoryMethod()=0; }; class ConcreteCreator:public Creator { public: Product* FactoryMethod() { cout<<"Product created!"<<endl; return new ConcreteProduct; } }; void main() { Creator* creator=new ConcreteCreator(); Product* product=creator->FactoryMethod(); }