定义
工厂父类负责定义创建产品对象的公共接口,工厂子类则负责生成具体的产品对象,将产品类的实例化操作延迟到工厂子类中完成。
角色
- 抽象产品(Product)
- 具体产品(ConcreteProduct)
- 抽象工厂(Factory)
- 具体工厂(ConcreteFactory)
工厂方法模式 VS 简单工厂模式
- 工厂方法模式是简单工厂模式的进一步抽象和推广,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。
- 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责哪一个产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。