一、抽象工厂模式的主要角色如下
(1)抽象工厂:提供了创建产品的接口,它包含多个创建产品的方法 newProduct(),可以创建多个不同等级的产品。(Abstract Factory
)
(2)具体工厂:主要是实现抽象工厂中的多个抽象方法,完成具体产品的创建。(Concrete Factory
)
(3)抽象产品:定义了产品的规范,描述了产品的主要特性和功能,抽象工厂模式有多个抽象产品。(Product
)
(4)具体产品:实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间是多对一的关系。(ConcreteProduct
)
二、抽象工厂模式的结构图
三、应用场景
1、当需要创建的对象是一系列相互关联或相互依赖的产品族时,如电器工厂中的电视机、洗衣机、空调等。
2、系统中有多个产品族,但每次只使用其中的某一族产品。如有人只喜欢穿某一个品牌的衣服和鞋。
3、系统中提供了产品的类库,且所有产品的接口相同,客户端不依赖产品实例的创建细节和内部结构。