工厂方法模式
Factory* fac = new ConcreteFactory();//这句代码是不稳定的,如果需要创建新的对象,需要再写一个工厂的子类,当然也可以把具体的产品作为factory的模板参数来避免创建子类
Product* p = fac->CreateProduct(); // 这句代码是稳定的
return 0;
抽象工厂模式:,当我们要创建一组对象(ProductA1,ProductA2){这两个对象是关联的,必须同时创建}的时候我们只用维护一个创建对象(ConcreteFactory1),这里两个不同的工厂是两种不同的业务需求,例如工厂1可能适用于一个低级别的用户,工厂2适用于高级别,但是工厂1和工厂2都要创建productA,productB(A和B必须同时存在,即一组对象且相互关联)
AbstractFactory* cf1 = new ConcreteFactory1();cf1->CreateProductA();
cf1->CreateProductB();
AbstractFactory* cf2 = new ConcreteFactory2();
cf2->CreateProductA();
cf2->CreateProductB();
return 0;