三种工厂模式介绍:
https://mp.weixin.qq.com/s/rUpeUf_AOnFvJFMGgmNGTw
抽象工厂的实现:
https://github.com/ConfuseCat/DesignPattern/tree/master/src/BuildInstance/AbstractFactroy
抽象工厂:不关心零件的具体实现,而是只关心接口。我们仅使用该接口将零件组装成为产品
抽象工厂的类图
抽象工厂中的角色
- AbstractProduct(抽象产品)
负责定义AbstractFactory角色所生成的抽象零件和产品的接口 - Client(委托者)
仅调用AbstractFactory角色和AbstractProduct角色的接口来进行工作,对于具体的零件、产品、和工厂一无所知。 - AbstractFactory(抽象工厂)
负责定义用于生成抽象产品的接口 - ConcreteProduct(具体的产品)
负责实现AbstractProduct角色的接口 - ConcreteFactory(具体的工厂)
负责实现AbstractFactory角色的接口
抽象工厂的特点
- 易于增加的具体的工厂
- 难以增加的新的零件
每增加一个抽象的零件(product)都必须在所有的具体的工厂中去实现