抽象工厂模式的结构图以下:对象
读者注意到我在这个结构图上画了一个蓝色的方框,画出这个方框的缘由是这个框里的结构就是一个典型的工厂模式(FACTORY METHOD)。这样来看抽象工厂模式就变得简单了,只是在工厂模式的基础上拓展了product的种类。既然做为工厂模式的拓展,工厂模式全部的优势都能被抽象工厂模式彻底的继承了。关于工厂方法模式的优势这里再也不赘述,读者能够参考工厂方法模式。那么对于抽象工厂模式,gof是怎么定义的呢?blog
“提供一个建立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。”继承
注意到这里强调了一系列的,这里的一系列对象是指有不一样父类的子类(product)。经过引入的creator抽象,能够按照用户所需生成一系列product,以此来知足用户的需求。能够很明确的是工厂方法模式和抽象工厂模式的需求背景是不一样的。工厂方法模式强调整个系统的可拓展性,抽象工厂方法强调须要生成一系列的产品的状况。固然抽象工厂方法也是部分可拓展的,起码在用户需求变化只局限于生成的product子类不一样时。接口