原型设计模式

17 Mar 2025 | 4 分钟阅读

原型设计模式是创建型设计模式的一部分。它的主要目标是减少应用程序的类数量。它提供了创建现有对象副本的功能,而无需依赖其类的实际实现。简单来说,新创建的对象需要的资源比我们想要使用或可用的资源更多,因此我们创建可用对象的精确副本。

例如 - 从大型服务器下载文件,但该文件已在内存中可用,我们可以克隆它并处理原始文件的新副本。

当对象形成在时间和资源使用方面非常方便时,原型设计模式起着至关重要的作用。我们可以获得原始对象的副本,并根据我们的需要对其进行修改。

不使用原型方法的问题\

假设我们要绘制不同类型的形状,例如圆形、矩形、正方形,并且我们已经有一个实例。现在,我们决定创建现有对象的类似副本。我们如何实现这一点? 普通开发人员将创建同一类的新对象,并添加整个对象的功能并复制值。但这里存在一个问题,他/她无法派生所有功能,因为有些是私有的和受保护的,并且类外部无法使用。

还有另一个问题;我们需要另一个类的代码来创建它的副本。这是一种依赖关系的情况,这在 软件开发 中肯定不是一个好的实践。

让我们理解以下示例,我们将创建包含有关课程详细信息的各种课程类。

示例 -

输出

Name of Course: R and its type: R programming language classes
Name of Course: Java and its type: Java Basics and Hibernate
Name of Course: Python and its type: Python basics and advance

使用原型方法解决

为了解决这个问题,我们将使用原型方法。我们将创建两个单独的类来创建与现有对象具有相同字段属性的精确副本。在这里,我们将定义一个支持对象克隆的公共接口或类。借助对象克隆,我们可以创建对象而无需耦合。

支持克隆的对象称为原型。让我们理解以下示例。

示例 -

原型模型的优点

原型模型的优点如下。

  • 所有类型的创建型设计模式都为我们提供了大量难以维护的类,尤其是在我们处理大型项目时。但是原型设计模式可以帮助我们摆脱它。
  • 借助原型模型,我们可以为新对象提供各种值。动态行为帮助我们通过对象组合定义新的行为。
  • 通常,所有应用程序都从部分和子部分构建对象。用户定义的结构会一次又一次地使用。

原型模型的缺点

原型模型包含一些缺点,如下所示。

  • 它使用抽象隐藏了类的具体实现细节。
  • 对于使用很少对象的项目,它可能会显示为资源过剩。

适用性

  • 原型模型提供了独立于具体类的独立性。我们可以在不依赖现有类的情况下实现新对象。
  • 它还有助于解决软件开发中反复出现的复杂问题。

下一个主题外观设计模式