Java原型设计模式(Prototype)
作者:网络转载 发布时间:[ 2014/3/21 11:03:05 ] 推荐标签:Java 设计 原理
1、定义
原型模式(Prototype)是通过复制一个已经存在的实例来返回新的实例,而不是新建实例,被复制的实例是我们所称的原型对象,这个原型是可定制的。
2、原理
有两部分组成,抽象原型和具体原型。意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
3、原型模式UML图

4、实现
1>使用一个原型管理器;
2>实现克隆操作(浅拷贝和深拷贝);
3>初始化克隆对象。
5、示例程序
(1)利用Java中的clone方法深拷贝与浅拷贝
浅拷贝:
public class Professor {
private String address;
private double salary;
public Professor(String address, double salary) {
this.address = address;
this.salary = salary;
}
public void setAddress(String address) {
this.address = address;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Professor [address=" + address + ", salary=" + salary + "]";
}
}
public class Student implements Cloneable {
private String name;
private int age;
private Professor professor;
public Student(String name, int age, Professor professor) {
this.name = name;
this.age = age;
this.professor = professor;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", Professor="
+ professor.toString() + "]";
}
@Override
public Object clone() {
Student student = null;
try {
// 在运行时,Object中的clone识别出你要复制的是哪一个对象,Object中的clone()
// 然后为此对象分配空间,并进行对象的复制,将原始对象的内容一一复制到新对象的存储空间中。
student = (Student) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return student;
}

sales@spasvo.com