Java设计模式-原型模式详解
用原型实例指定创建对象的类型,并且通过拷贝这些原型创建新的对象。
该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。
我们举个例子:如果我们已经有了一个String[] 数组,想再创建一个一模一样的String[] 数组,怎么
写?
实际上创建过程很简单,就是把现有数组的元素复制到新数组。如果我们把这个创建过程封装一下,就
成了原型模式。用代码实现如下:
// 原型:
String[] original = { "Apple", "Pear", "Banana" };
// 新对象:
String[] copy = Arrays.copyOf(original, original.length);
对于普通类,我们如何实现原型拷贝?Java的Object 提供了一个clone() 方法,它的意图就是复制一
个新的对象出来,我们需要实现一个Cloneable 接口来标识一个对象是“可复制”的:
public class Student implements Cloneable { private int id;
private String name; private int score;
// 复制新对象并返回:
public Object clone() {
Student std = new Student(); std.id = this.id;
std.name = this.name; std.score = this.score; return std;
}
}
使用的时候,因为clone() 的方法签名是定义在Object 中,返回类型也是Object ,所以要强制转 型
,比较麻烦:
评论0
最新资源