`

Prototype(原型)模式—解决对象创建时的昂贵

阅读更多
引用
Prototype(原型)模式:当创建给定类的实例的过程很昂贵或复杂时,使用Prototype(原型)模式。


以下内容来自板桥里人说模式。

Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。

如何使用?
因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单.

以勺子为例:

public abstract class AbstractSpoon implements Cloneable
{ 
  String spoonName; 

  public void setSpoonName(String spoonName) {this.spoonName = spoonName;}
  public String getSpoonName() {return this.spoonName;}

  public Object clone() 
  {
    Object object = null;
    try {
      object = super.clone();
    } catch (CloneNotSupportedException exception) {
      System.err.println("AbstractSpoon is not Cloneable");
    }
    return object;
  }
}

有个具体实现(ConcretePrototype):

public class SoupSpoon extends AbstractSpoon
{ 
  public SoupSpoon()
  {
    setSpoonName("Soup Spoon"); 
  }
}



调用Prototype模式很简单:

AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon2 = spoon.clone();


当然也可以结合工厂模式来创建AbstractSpoon实例。

在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,如Interator遍历模式。

分享到:
评论

相关推荐

    设计模式之Prototype(原型)

    总的来说,Prototype设计模式是软件设计中一种高效且灵活的对象创建策略。通过复制已有对象,避免了重复的初始化过程,降低了系统开销。了解并熟练掌握这种模式,将有助于提升我们设计和编写高质量代码的能力。

    设计模式之原型模式

    原型模式是设计模式中的一种,它是Java 23种经典设计模式之一,主要用来提高对象创建的效率。在原型模式中,我们通过复制或克隆一个已经存在的对象来创建新的对象,而不是通过构造函数来创建。这种方法尤其适用于当...

    [创建型模式] 原型模式的理解

    原型模式(Prototype Pattern)是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而无需知道具体创建过程的细节。这种模式的核心在于,它提供了一种更灵活的创建对象的方式,避免了复杂的构造过程...

    原型模式代码示例

    原型模式是一种设计模式,属于创建型模式,它允许我们...在实际应用中,原型模式常用于创建昂贵的对象、减少数据库访问、或者在系统中需要大量创建相似对象的场景。配合工厂模式使用,可以提供更加灵活的实例化策略。

    C#编程中使用设计模式中的原型模式的实例讲解

    原型模式(Prototype Pattern)是其中一种,它的核心思想是通过复制已有对象来创建新的对象,而不是通过构造函数来初始化新对象。这种模式在某些场景下可以提高程序的性能,减少内存开销,并简化代码结构。 ### 一...

    原型模式简介和java代码实现

    原型模式是创建型设计模式之一,通过复制现有对象来创建新对象,而无需依赖于昂贵的实例化过程。该模式基于原型实例生成新的对象,并且可以根据需要进行修改和定制。 原型模式的特点包括: 1. 通过克隆已有对象来...

    原型模式1

    总的来说,原型模式提供了一种创建对象的快捷方式,特别是在对象创建成本较高或者需要多次复制的情况下,它能提高程序的效率和可维护性。在实际编程中,合理运用原型模式可以优化代码结构,降低系统复杂性。

    第六讲:原型模式

    总结来说,原型模式提供了一种通过复制已有对象来创建新对象的方式,它在性能优化和简化复杂对象构造过程中起着重要作用。理解和熟练运用原型模式,可以提升代码的可维护性和效率。在阅读源码和使用相关工具时,可以...

    Prototype开发和使用

    这种模式简化了对象的创建过程,特别是当对象的创建过程复杂或者昂贵时。 ### 2. Prototype模式的结构 Prototype模式主要包括两个角色: - **Prototype(原型)**:这是一个接口或抽象类,定义了克隆操作。 - **...

    c++20设计模式-第4章-原型模式代码

    原型模式(Prototype Pattern)是其中一种行为设计模式,它允许我们通过复制现有对象来创建新对象,而不是通过传统方式实例化新对象。这一模式尤其适用于创建复杂或昂贵的对象,因为它提供了对象克隆的能力,从而...

    iOS设计模式-原型设计模式

    这种模式主要用于减少创建新对象的复杂性和开销,特别是在创建对象的过程很昂贵或需要大量初始化操作时。在iOS开发中,我们可以通过实现NSCopying协议来利用原型模式。 首先,要使用原型设计模式,我们需要定义一个...

    C#面向对象设计模式纵横谈(5)

    这种模式主要用于减少创建新对象的复杂性和成本,特别是在对象创建过程较为昂贵或者需要大量初始化数据时。 在C#中,我们可以利用接口或继承来实现原型模式。一个类可以实现`ICloneable`接口,该接口定义了一个名为...

    创建型设计模式1

    其次,原型模式(Prototype Pattern)允许通过复制已有对象来创建新对象,而不是通过new操作符。这种方法尤其适用于当创建新对象的过程非常复杂或者昂贵时,通过复制一个已经存在的对象可以快速生成新实例。原型模式...

    设计模式之工厂系列

    5. **原型模式(Prototype)**:原型模式提供了一种复制现有对象而非创建新对象的方法。通过克隆已有对象,可以快速创建相似的新对象,节省资源,特别适合于创建大型或昂贵的对象。 在Java中,这些工厂模式通常结合...

    设计模式笔记(精版)

    4. 原型(Prototype)模式:原型模式通过复制已有对象来创建新对象,减少了创建新对象的成本。它适用于当创建新对象的过程很复杂或者很昂贵时。 5. 单例(Singleton)模式:单例模式确保一个类只有一个实例,并提供...

    您的设计模式

    原型模式用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 21. 中介者模式(Mediator Pattern) 中介者模式定义一个中介对象来封装一系列对象之间的交互。中介者使各个对象不需要显示地相互...

    设计模式.zip

    8. 原型模式(Prototype):通过复制现有的对象来创建新对象,而不是通过new操作符进行实例化,尤其适用于对象的创建过程复杂或者代价昂贵的情况。 学习设计模式并将其应用到实际项目中,能够帮助开发者更好地理解...

    Java 24种设计模式

    当你需要创建大量的相似对象时,或者创建对象的成本很高时,可以使用原型模式。 **优点:** - 能够高效地创建对象。 - 减少了创建对象的成本。 **缺点:** - 需要为每个类都提供一个克隆方法。 **示例:** 在例子...

    24种设计模式(Demo+文档)

    5. **原型模式(Prototype)**:原型模式提供了一种通过复制现有的对象来创建新对象的方式,减少了创建新对象的开销,尤其适用于对象的创建过程复杂或者创建过程昂贵的情况。 6. **解释器模式(Interpreter)**:...

Global site tag (gtag.js) - Google Analytics