设计模式之原型模式
/**
* 原型设计模式:原型模式主要用于对象的复制
* Prototype类需要具备以下两个条件:
1.实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常。
2.重写Object类中的clone方法。Java中,所有类的父类都是Object类,Object类中有一个clone方法,作用是返回对象的一个拷贝,但是其作用域protected类型的,一般的类无法调用,因此,Prototype类需要将clone方法的作用域修改为public类型。
*
*/
public class Prototype implements Cloneable{
private String name;
public Prototype(String name){
this.name = name;
}
public static void main(String[] args) throws CloneNotSupportedException{
Prototype p1 = new Prototype("wangwu");
Prototype p2 = (Prototype)p1.clone();
System.out.println(p2.getName());
p2.setName("lisi");
System.out.println(p1.getName());
System.out.println(p2.getName());
}
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}