定义
通过拷贝已知对象创建新的一摸一样的对象
演化
1.先准备一个User数据类
public class User {
public int id;
public String nickName;
public String realName;
public int gender;
public String phoneNumber;
public String idcard;
public String phoneZone;
}
2.在我们平时所接触的网站和APP中,几乎都有用户资料管理的功能。当用户修改资料时,修改了一半放弃是常有的事情,这时需要弹窗提示用户是否保存已经修改信息。那么如何判断用户的资料已经发生了修改呢?又如何在用户选择放弃时恢复到初始状态呢?
解决办法的是:备份。重新创建一个User对象,它的属性与初始状态一模一样。当需要判断用户信息是否发生改变时,可以通过比较两个对象的属性进行判断。当用户放弃修改时,直接使用备份对象的数据即可。
原型模式的思想十分简单,需要遵循以下原则:
- 新创建的对象属性必须与原对象完全一致,但两者并非同一对象。
- 对其中一个进行修改时,另一个对象应该完全不受影响。
实现Cloneable接口
1.Java提供了一个Cloneable接口来辅助对象的克隆,
public class User implements Cloneable{
public int id;
public String idCard;
public String nickName;
@Override
public Object clone() {
User user= null;
try {
user= (User)super.