简单概念
很好理解 就是提供一个对象的原型 然后提供clone方法使得我们可以很轻松的获得该对象的克隆体
简单例子
写一个原型类
//视频原型
//实现步骤
/*
1. 实现Cloneable接口
2. 重写clone方法
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Video implements Cloneable{
private String name;
private Date createTime;
@Override
protected Object clone() throws CloneNotSupportedException {
Object obj = super.clone();
Video v = (Video) obj;
//将这个对象属性也进行克隆
v.createTime = (Date) this.createTime.clone();
return obj;
}
}
测试使用
public class Bili {
public static void main(String[] args) throws CloneNotSupportedException {
Date date=new Date();
Video v1=new Video("狂神说",date);
//v1克隆v2
Video v2 = (Video) v1.clone();
System.out.println("v1=>"+v1);
System.out.println("v2=>"+v2);
//修改v2值v1也会被修改
date.setTime(221312131);
System.out.println("v1=>"+v1);
System.out.println("v2=>"+v2);
}
}
可以看到v1被修改了 但是v2并没有修改
实现了克隆的效果