原型模式
一个对象创建另一个可定制对象,无需知道其创建细节 就是对象通过请求原型对象拷贝,来实现克隆,即克隆对象=对象.clone()
实现思路:
提供一个原型接口 让原型类继承该接口,并重写克隆方法
Object类是所有类的根类,它提供了一个clone方法,重写它实现自己的功能即可
class Sheep implements Cloneable{
private String name;
private int age;
public Sheep(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "sheep{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
// 重写clone方法
@Override
protected Object clone(){
Sheep sheep = null;
try {
sheep =(Sheep) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return sheep;
}
}
之后要克隆的话只要调用其clone方法即可
public class Prototype {
public static void main(String[] args) {
Sheep sheep = new Sheep("小白", 3);
Sheep clone = (Sheep)sheep.clone();
Sheep clone2 = (Sheep)sheep.clone();
Sheep clone3 = (Sheep)sheep.clone();
System.out.println(clone3.toString());
System.out.println(clone2.toString());
System.out.println(clone.toString());
}
}