原型模式(Prototype)
原型模式(Prototype):将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。
浅克隆:被克隆对象的所有变量都含有与原来的对象相同的值,而它所有的对其他对象的引用都仍然指向原来的对象。
深克隆:被克隆对象的所有变量都含有与原来的对象相同的值,但它所有的对其他对象的引用不再是原有的,而这是指向被复制过的新对象。
/** * Created by Administrator on 2015/10/21. * 功能:原型模式 */ public class Prototype implements Cloneable{ public String name; public Object clone() { Prototype prototype = null; try { prototype = (Prototype)super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return prototype; } }
public class Test {
public static void main(String[] args) {
// test1();
test2();
}
/**
* 测试原型模式
*/
private static void test2() {
Test test = new Test();
Prototype p1 = new Prototype();
Prototype p2 = new Prototype();
Prototype p3 = new Prototype();
p1.name = "a1";
p2 = p1;
p2.name = "a2";
p3=(Prototype)p1.clone();
p3.name = "a3";
System.out.println("a1.name=" + p1.name);
System.out.println("a2.name=" + p2.name);
System.out.println("a3.name=" + p3.name);
}
}