用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
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");
}
}
}