设计模式-工厂方法模式
工厂方法模式结构图 意图: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 其中: Product定义工厂方法所创建的对象的接口。 ConcreteProduct实现Product接口 Create声明工厂方法,该方法返回一个Product类型的对象。Create也可以定义一个工厂方法的默认实现,它返回一个默认的ConcreteProduct对象,可以调用工厂方法以创建一个Product对象。 ConcreteCreator重定义工厂方法以返回一个ConcreteProduct实例。 应用举例 #include <iostream> using namespace std; //抽象产品 class Product { }; //具体产品A class ConcreteProductA : public Product { }; //具体产品B class ConcreteProductB : public Product { }; //抽象工厂 class Creator { public: virtual Product *CreateProduct() = 0; }; //具体工厂A,只生产A产品 class ConcreteCreatorA : public Creator { public: virtual Product