抽象工厂和工厂设计模式有什么区别?

抽象工厂和工厂设计模式有什么区别?

我知道有很多关于这两种模式之间的区别的帖子,但是有一些东西我找不到。

从我所读到的内容中,我看到工厂方法模式允许您定义如何创建单个具体产品,但将实现隐藏在客户端,因为它们将看到一个通用产品。我的第一个问题是关于抽象工厂。它的作用是允许您创建具体对象的系列(这取决于您所使用的具体工厂),而不仅仅是一个具体的对象?抽象工厂是否只返回一个非常大的对象或多个对象,具体取决于您调用的方法?

我的最后两个问题是关于一句我无法完全理解的话,我在很多地方都看到过:

两者的一个不同之处在于,对于抽象工厂模式,类通过组合将对象实例化的责任委托给另一个对象,而Factory方法模式使用继承并依赖子类来处理所需的对象实例化。

我的理解是,工厂方法模式有一个Creator接口,它将使ConcreteCreator负责了解要实例化的ConcreteProducts。这就是使用继承来处理对象实例化的含义吗?

关于这句话,抽象工厂模式究竟是如何通过组合将对象实例化的责任委托给另一个对象的?这是什么意思?在我看来,抽象工厂模式也使用继承来完成构建过程,但是我仍然在学习这些模式。

任何帮助,特别是最后一个问题,将不胜感激。


慕慕森
浏览 1499回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP