声明:本博文篇幅短,适合快速回顾、朝花夕拾,不适合入门详解。
一、概念
定义一个用于创建产品对象的接口,让子类决定实例化哪一个类,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,仅负责具体工厂子类必须实现的接口。
二、模式结构图
三、例子
class Factory
{
public :
virtual Operate CreateOperation() = 0;
};
class AddFactory : public Factory
{
public :
Operate CreateOperation()
{
return new Add();
}
};
四、优缺点
1、优点
a、支持开闭原则。
b、将创建对象的逻辑与任务交给了工厂类。
2、缺点
a、每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。