首先看两者模式的UML图:
工厂方法模式
抽象工厂模式
两者共同点:
两种设计模式属于创建型模式,它提供了一种创建复杂对象的最佳方式。
不同点:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂只能创建一类产品的实例,而抽象工厂模式的具体工厂类可以创建多类产品的实例。
每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构。
工厂方法模式
抽象工厂模式用于创建多个产品族中的产品对象。(抽象工厂模式至今还没用过)