设计模式-创建型-抽象工厂模式(ABSTRACT FACTORY)

抽象工厂模式的结构图如下:

  读者注意到我在这个结构图上画了一个蓝色的方框,画出这个方框的原因是这个框里的结构就是一个典型的工厂模式(FACTORY METHOD)。这样来看抽象工厂模式就变得简单了,只是在工厂模式的基础上拓展了product的种类。既然作为工厂模式的拓展,工厂模式所有的优点都能被抽象工厂模式完全的继承了。关于工厂方法模式的优点这里不再赘述,读者可以参考工厂方法模式。那么对于抽象工厂模式,gof是怎么定义的呢?

  “提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。”

  注意到这里强调了一系列的,这里的一系列对象是指有不同父类的子类(product)。通过引入的creator抽象,可以按照用户所需生成一系列product,以此来满足用户的需求。可以很明确的是工厂方法模式和抽象工厂模式的需求背景是不同的。工厂方法模式强调整个系统的可拓展性,抽象工厂方法强调需要生成一系列的产品的情况。当然抽象工厂方法也是部分可拓展的,起码在用户需求变化只局限于生成的product子类不同时。

 

posted @ 2017-03-06 16:11  远行的猴子  阅读(143)  评论(0编辑  收藏  举报