介绍
原型模式(Prototype Pattern)属于创建型模式,是用于创建重复的对象,同时又能保证性能。它实现了一个原型接口,该接口用于创建当前对象的克隆。
优点
- 直接拷贝内存二进制流,提高了性能
- 逃避构造函数的约束
缺点
- 必须实现cloneable接口
- 类成员中有final类型的成员,这个类不能进行clone
应用
资源场景优化
实现
关键代码:实现 Cloneable 接口,重写 clone()
abstract class Animal implements Cloneable {
protected String name;
abstract void say();
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
public Object clone() {
Object clone = null;
try {
clone = super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return clone;
}
}
class Sheep extends Animal {
public Sheep(){
name = "sheep";
}
@Override
public void say() {
System.out.println("my name is "+this.name);
}
}
class Demo{
public static void main(String[] args) {
Sheep sheep = new Sheep();
Sheep cloneSheep = (Sheep)sheep.clone();
cloneSheep.setName("Dolly");
sheep.say();
cloneSheep.say();
}
}
运行结果:
my name is sheep
my name is Dolly