原型模式:
基于 clone 方式,实现对象的快速(简化)创建
性能保证:
- clone 是直接从内存中复制数据,不通过构造函数,所以比 new 的方式性能要好得多
- 由于不经过构造函数,所以原型模式和单例模式存在冲突。
- 用例场景:复杂对象,循环内创建等
shallow clone:仅复制基本类型及对应封装类的数据deep clone:除浅克隆的数据外,还复制数组,容器,引用对象等数据。
浅克隆外的数据,需要手动执行复制操作
实现代码:
package com.model.prototype.bean;
import java.util.Date;
/**
* java bean
*
* @author haveman.lv
*/
public class NamedObject {
private long rrn;
private String id;
private String object;
private String objectType;
private String objectSubType;
private Date createDate;
private String createUser;
public long getRrn() {
return rrn;
}
public void setRrn(long rrn) {
this.rrn = rrn;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getObject() {
return object;
}
public void setObject(String object) {
this.object = object;
}
public String getObjectType() {
return objectType;
}
public void setObjectType(String objectType) {
this.objectType = objectType;
}
public String getObjectSubType() {
return objectSubType;
}
public void setObjectSubType(String objectSubType) {
this.objectSubType = objectSubType;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
}
package com.model.prototype.bean;
/**
* java bean
*
* @author haveman.lv
*/
public class Entity extends NamedObje