`
gary0416
  • 浏览: 334783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Prototype模式

阅读更多

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

Prototype.java

package com.gary.designpattern.prototype;

/**
 * 此模式实现简单,因为Java提供clone方法
 * 1.实现java.lang.Cloneable接口
 * 2.覆盖clone方法
 * java clone详解:
 * 传送门 http://wenku.baidu.com/view/bf52ad4e767f5acfa1c7cd40.html
 * 
 * @author gary
 *
 */
public class Prototype implements Cloneable{
	
	private String someData;

	public void setSomeData(String someData) {
		this.someData = someData;
	}

	public String getSomeData() {
		return someData;
	}
	
	public void printData(){
		System.out.println(someData);
	}

	@Override
	protected Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
	
}

 

Test.java

package com.gary.designpattern.prototype;

/**
 * 测试
 * @author gary
 *
 */
public class Test {
	public static void main(String[] args) {
		Prototype prototypeA = new Prototype();
		prototypeA.setSomeData("hello world!");
		
		try {
			Prototype prototypeB = (Prototype) prototypeA.clone();
			prototypeB.printData();
			Prototype prototypeC = (Prototype) prototypeA.clone();
			prototypeC.printData();
		} catch (CloneNotSupportedException e) {
			System.out.println("Prototype is not Cloneable");
		}
		
	}
}

 

分享到:
评论

相关推荐

    设计模式 创建型模式 Prototype模式(原型)

    Prototype模式 即原型模式,提供一个已经存在的对象进行新对象创建的接口,一般情况下都是使用Clone接口。 此模式非常简单,简单的说就是复制多个当前对象供使用。Prototype模式允许一个对象再创建另外一个可定制...

    23种设计模式之Prototype模式代码

    **原型模式(Prototype模式)**是软件设计模式中的一个经典模式,属于创建型模式。它提供了一种通过复制现有的对象来创建新对象的方式,而无需知道具体创建过程的细节。这种模式在需要频繁创建相似对象时非常有用,...

    Prototype模式练习

    在给定的"Prototype模式练习"中,我们可以深入探讨这种模式的应用和实现。 首先,原型模式的核心在于`Cloneable`接口和`clone()`方法。在Java中,当一个类实现了`Cloneable`接口,并且重写了`Object`类中的`clone()...

    (创建型模式)Prototype模式

    **原型模式(Prototype模式)**是软件设计模式中的创建型模式之一,它在23种GOF设计模式中占据重要地位。原型模式的核心思想是通过复制已有对象来创建新对象,而不是从头开始创建,从而提高代码的效率和可扩展性。这种...

    设计模式之Prototype(原型)

    Prototype模式的核心在于实现克隆操作。在Java中,我们可以利用`Cloneable`接口和`clone()`方法来实现对象的复制。但是需要注意,不是所有类都能直接使用`clone()`方法,因为默认的`clone()`方法仅复制对象的引用,...

    设计模式之Prototype

    在Prototype模式中,核心概念包括“原型”接口或抽象类,以及具体的可克隆的实现类。原型接口规定了克隆操作,而实现类则提供了实际的克隆功能。通常,克隆操作有两种形式:浅克隆(Shallow Clone)和深克隆(Deep ...

    Prototype开发和使用

    在软件开发领域,Prototype模式是一种设计模式,它主要应用于创建对象。该模式的主要目的是减少对象的创建开销,特别是在需要大量相似对象时。 Prototype模式通过克隆已存在的对象来创建新对象,而不是从头开始构造...

    Java设计模式之原型模式(Prototype模式)介绍

    原型模式(Prototype模式)是一种创建型设计模式,它允许我们创建对象的副本,而无需知道对象是如何被创建的。在Java中,这个模式通常通过实现`Cloneable`接口和覆盖`clone()`方法来实现对象的克隆。接下来,我们将...

    23种设计模式整理pdf

    Prototype 模式是一种创建型模式,用于创建对象的副本。Prototype 模式的优点是可以快速地创建对象的副本,减少了对象创建的时间和空间开销。Prototype 模式的缺点是它可能会导致对象的耦合度增加。 3. Factory ...

    Prototype整理的学习资料

    这个压缩包中的"Prototype学习笔记.doc"很可能是对Prototype模式深入理解的详细文档。下面将从Prototype设计模式的基本概念、在JavaScript中的应用、与Ajax的关系以及如何与其他技术如Java和JavaScript库交互等方面...

    原型设计模式prototype

    **原型设计模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过构造函数来实例化新对象。在面向对象编程中,当我们需要频繁地创建具有相同或相似属性的对象时,...

    JavaScript设计模式与开发实践.pdf

    第二部分是核心部分,通过一步步完善的代码示例,由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、...

    Java设计模式(泡妞经典版)

    Prototype 模式可以使得产品类不需要非得有任何事先确定的等级结构,Prototype 模式适用于任何的等级结构。 例如,在 Prototype 模式的例子中,可以通过复制原型对象来创建出更多同类型的对象,不需要知道产品的...

    设计模式精解-GoF 23种设计模式解析

    - **1.5 Prototype模式**:原型模式通过克隆已存在的实例来创建新实例,从而避免每次都需要重新创建相同的对象。这种模式特别适用于创建大量相似对象的情况。在C++中,可以通过实现clone()函数来实现原型模式。 ###...

    Prototype.rar

    工厂模式是另一种设计模式,它与Prototype模式一起在面向对象编程中扮演着重要的角色。 **原型模式(Prototype)**: 原型模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在原型模式中,一个对象被用来...

    C++ 23种设计模式1

    5. **Prototype模式**:原型模式通过克隆已有对象来创建新对象,减少了创建新对象的开销。C++中可以通过实现`clone`方法来实现对象的复制。 **结构型模式**则关注如何组合对象和类,以创建更大的结构。 1. **...

    C++设计模式.pdf

    Prototype模式使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这在创建对象的代价较大,或者对象创建需要复杂初始化的情况下非常有用。 ### 结构型模式 #### Bridge模式 Bridge模式将抽象...

    23种设计模式的uml表示

    - **Prototype 模式**:Prototype模式通过复制一个已经存在的对象实例来创建新的对象,而不是通过创建对象的过程来创建新对象。这种模式特别适合于创建大量的相似对象。UML图示例展示了Prototype接口以及具体的...

    C++常见设计模式的解析和实现+源码解析.rar

    常见设计模式的解析和实现(C++),真的很经典,我也在学 常见设计模式的解析和实现(C++)之一-Factory...常见设计模式的解析和实现(C++)之四-Prototype模式 常见设计模式的解析和实现(C++)之五-Singleton模式 .........

Global site tag (gtag.js) - Google Analytics