抽象工厂模式定义:
提供一个创建一系列相关活相互依赖对象的接口,而无须制定他们具体的类。抽象工厂模式的又称为Kit模式。它是一个钟对象创建型模式。
抽象工厂模式结构图:
抽象工厂模式主要优缺点:
优点:
1.抽象工厂模式隔离具体的生成,对用户进行隔离。通过公共接口获得产品的使用。
2.当一个产品族的多个对象被设计成一起工作,他能保证客户端始终只能使用同一个产品族的对象。
3.添加新的产品非常方便。
缺点:
1.添加新的等级结构,需要抽该抽象层的代码,违背开闭原则。
抽象工厂模式的适应场景:
1.一个系类不依赖产品实例如何被创建、组合和表达的细节,这对于所有类型的工厂模式都是很重要的,用户无需关系对象的创建过程。
2.系统中的多余一个产品族,而每次只是用一个产品族。
3.同属于一个产品族的产品将放在一起使用,这个一个约束必须在设计中提现出来
4.产品等级结构稳定,设计完之后,不会向系统中添加新的产品等级结构或者删除已有的产品等级结构。
抽象工厂模式中开闭原则倾斜性:
倾向于增加一个新产品方便,而不是增加一个新产品结构,因此要求设计之初考虑比较全面。否则维护非常麻烦。