设计模式:抽象工厂模式,结合类图秒懂!
通过前篇文章 《设计模式:工厂模式,解除耦合的利器》 的介绍,我们对工厂模式有了深入的了解,今天继续介绍一种特殊的工厂模式,也就是抽象工厂模式。 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式,是工厂方法模式的升级版,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。 抽象工厂模式包含了几个角色: AbstractFactory:用于声明生成抽象产品的方法 ConcreteFactory:实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中; AbstractProduct:为每种产品声明接口,在抽象产品中定义了产品的抽象业务方法; Product:定义具体工厂生产的具体产品对象,实现抽象产品接口中定义的业务方法。 这是它的通用类图: 其中 AbstractProductA 和 AbstractProductB 就是两个产品族的抽象类 (或者接口),而 Product1 和 Product2 就是产品族下的具体产品类,AbstractCreator 就是工厂的抽象。 我们可以用操作系统来举例,现在市面上用的最多的两种PC端操作系统是windows和Linux,两个系统都有共同类型的组件,如文件夹,按钮