1 原型模式通过克隆对象,减少系统开销,要克隆的对象必须要继承Cloneable接口,否者会报错。
自定义一个克隆操作接口:
public interface ICloneable {
public Object Clone();
}
实体类:
package com.tang.design.clone;
public class Resume implements Cloneable,ICloneable{
private String name;
private Integer age;
public Resume(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public Object Clone() {
// TODO Auto-generated method stub
Object obj=null;
try {
obj=(Object)this.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void display(){
System.out.println("name:"+name+" age:"+age);
}
}
测试:
public class TextMain {
public static void main(String[] args){
Resume resume=new Resume("张三", 1);
Resume resume2=(Resume)resume.Clone();
resume2.setName("李四");
Resume resume3=(Resume)resume2.Clone();
resume3.setAge(2);
resume.display();
resume2.display();
resume3.display();
}
}
通过克隆模式,创建重复的对象时通过克隆,不仅减少重复的属性设置,还减少系统开销。
参考书籍:《大话设计模式》