原型与其他模式有什么关系?

How is prototype related to other patterns?

我目前正在学习设计模式,我知道Prototype是一种创造型设计模式。

对于我的学校,我需要了解 Prototype 与其他设计模式的关系。

除了它创建(克隆)对象之外,这与其他创建模式有关。 还有其他关系吗?

回答问题的最佳资源是书 "Design patterns - Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides(又称 "The gang of four"):

  • Prototype 与 Abstract Factory 和 Builder 具有许多相同的结果:它对客户端隐藏了具体的产品 classes,从而减少了客户端知道的名称数量。此外,这些模式让客户端无需修改即可使用特定于应用程序的 classes。

  • Factory Method 通常会生成与产品 class 层次结构平行的 Creator classes 层次结构。 Prototype 模式让您可以克隆一个原型,而不是要求工厂方法创建一个新对象。因此,您根本不需要 Creator class 层次结构。