注意:问题在帖子末尾。
我已经阅读了有关Abstract Factory vs Factory Method的其他stackoverflow线程。我了解每种模式的意图。但是,我对该定义不清楚。
Factory Method定义了一个用于创建对象的接口,但是让子类决定要实例化的对象。工厂方法使类将实例化延迟到子类。
相比之下,抽象工厂提供了一个接口,用于创建相关或相关对象的族,而无需指定其具体类。
- 约翰·费米内拉
该抽象工厂看起来非常相似的工厂方法。我画了一些UML类来说明我的观点。
注意:
- 该图来自www.yuml.com,因此它们的方向不完全正确。但它是免费的服务:)。
- 这些图可能并不完美。我仍在学习GoF设计模式。
工厂方法:
抽象工厂(仅1个成员):
抽象工厂(更多成员):
问题:
- 如果抽象工厂只有一个创作者和一个产品,那么它仍然是抽象工厂模式吗?(用于创建家族的界面)
- 可以从接口创建Factory Method具体创建器,还是必须从类创建它?(类将实例化延迟到子类)
- 如果抽象工厂只能有一个创建者和一个产品,那么抽象工厂和工厂方法之间的唯一区别是前者的创建者是一个接口,后者的创建者是一个类吗?