`
gary0416
  • 浏览: 331435 次
  • 性别: 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模式代码

    23种设计模式之Prototype模式代码,这是自己学习Prototype模式顺带写的代码,仅供学习交流

    (创建型模式)Prototype模式

    23种设计模式之五(创建型模式)Prototype模式

    Prototype模式练习

    NULL 博文链接:https://redhacker.iteye.com/blog/414551

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

    1.5 Prototype模式 2 结构型模式 2.1 Bridge模式 2.2 Adapter模式 2.3 Decorator模式 2.4 Composite模式 2.5 Flyweight模式 2.6 Facade模式 2.7 Proxy模式 3 行为模式.....55 3.1 Template模式 3.2 Strategy...

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

    主要介绍了Java设计模式之原型模式(Prototype模式)介绍,本文讲解了如何使用原型模式并给出了代码实例,需要的朋友可以参考下

    36种最新设计模式整理

    Design Pattern: Prototype 模式 Design Pattern: Singleton 模式 Design Pattern: Registry of Singleton 模式 Design Pattern: Default Adapter 模式 31 Design Pattern: Adapter 模式 - Object Adapter 32 ...

    005Prototype.rar

    设计模式 Prototype 模式 原型模式 这里筹够20个字符

    C#设计模式.PDF

    六、 Prototype模式的优点与缺点 79 C#设计模式(10)-Adapter Pattern 80 一、 适配器(Adapter)模式 80 二、 类的Adapter模式的结构: 81 三、 类的Adapter模式示意性实现: 81 四、 对象的Adapter模式的结构: ...

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

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

    C#设计模式大全

    六、 Prototype模式的优点与缺点 C#设计模式(10)-Adapter Pattern 一、 适配器(Adapter)模式 二、 类的Adapter模式的结构: 三、 类的Adapter模式示意性实现: 四、 对象的Adapter模式的结构: 五、 对象...

    设计模式代码和报告

    3.2原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求...

    Prototype Pattern原型模式

    原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    学习php设计模式 php实现原型模式(prototype)

    Prototype模式优点: 1、可以在运行时刻增加和删除产品 2、可以改变值以指定新对象 3、可以改变结构以指定新对象 4、减少子类的构造 5、用类动态配置应用 Prototype模式的缺点: Prototype模式的最主要缺点就是每一...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    1.5 Prototype模式...................................................................................................................23 2 结构型模式.......................................................

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码.pdf

    1.5 Prototype模式 ...................................................................................................................29 2 结构型模式.......................................................

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

    1.5 Prototype模式.............................23 2 结构型模式...........................................26 2.1 Bridge模式..................................26 2.2 Adapter模式...........................

    原型设计模式prototype

    NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032892

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码.rar

    1.5 Prototype模式...................................................................................................................29 2 结构型模式.......................................................

Global site tag (gtag.js) - Google Analytics