注意:问题在帖子的末尾.
我已经阅读了有关Abstract Factory vs Factory Method的其他stackoverflow线程.我理解每个模式的意图.但是,我不清楚这个定义.
Factory方法定义了一个用于创建对象的接口,但是让子类决定实例化哪些接口.工厂方法允许类将实例化延迟到子类.
相比之下,抽象工厂提供了一个接口,用于创建相关或从属对象的族,而无需指定其具体类.
该抽象工厂看起来非常相似的工厂方法.我已经绘制了一些UML类来说明我的观点.
注意:
工厂方法:

抽象工厂(仅1名成员):
抽象工厂(更多成员):

问题:
language-agnostic uml design-patterns factory-method abstract-factory
我正在学习不同的设计模式,我有一种强烈的感觉,我错过了理解这种特殊模式的必要部分(或部分).
在我查看的所有网站和GoF书中,我都看到了克隆方法.根据我的理解,当我们需要该对象的不同版本时,我们可以克隆某种类型的对象,但我们不希望使用"new"命令手动创建每个对象(如在Java中).这可以隐藏其具体实现.因此,当我们克隆时,我们可以稍微调整克隆并使其成为我们需要的,而不必知道如何最难创建该对象.这是我的想法吗?
我还被告知,这可以减少子类化,并随后减少您需要进行的类的数量.我不太明白这一部分.有人能帮助我掌握这个吗?
我的最后一个问题是抽象工厂(甚至工厂方法)模式.这些工厂模式和原型模式感觉就像他们试图在创建新对象时隐藏具体实现.什么时候选择其中一个是个好主意?
谢谢你们!
uml ×1