原型模式
结构
原型(Prototype)模式关注的是大量相同或相似对象的创建问题,其意图在于通过复制一个已经存在的实例对象来获得一个新的实例,避免重复创建此类实例带来的开销
简单示例:
public interface ICloneable {
public Object clone();
}
public class ConcetrateApplicationLetter implements ICloneable {
public String name;
public Integer age;
public String email;
public String description;
@Override
public Object clone() {
ConcetrateApplicationLetter letter1 = new ConcetrateApplicationLetter();
letter1.name=this.name;
letter1.age=this.age;
letter1.email=email;
letter1.description=description;
return letter1;
}
public class Client {
public static void main(String[] args) {
ConcetrateApplicationLetter letter1 = new ConcetrateApplicationLetter();
//创建第一份简历
letter1.name="jyh";
letter1.age=21;
letter1.email="123.qq.com";
letter1.description="有上进心";
//创建第二份简历
ConcetrateApplicationLetter letter2 = (ConcetrateApplicationLetter)letter1.clone();
letter2.email="123.163.com";
}
}
优缺点
- 优点:在类的实例对象开销大的情况下,使用原型模式创建对象,性能高
- 缺点:每一个产品类必须配备一个克隆方法,且这个克隆方法需要对类的功能进行整体考虑,这对已有的类进行改造不容易。