原型模式

[b]原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。[/b]
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。


package com.jshx.clone;

/**
* 简历类
* @author duanpf
*
*/
public class Resume implements Cloneable{
private String name;
private String sex;
private String age;
private String timeArea;
private String company;


public void display(){
System.out.println("name = "+name+",sex="+sex+",age="+age);
System.out.println("工作经历:timeArea="+timeArea+",company="+company);
}

public Object clone() throws CloneNotSupportedException{
return super.clone();
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getTimeArea() {
return timeArea;
}
public void setTimeArea(String timeArea) {
this.timeArea = timeArea;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
}



package com.jshx.clone;

public class ResumeTest {

public static void main(String[] args) throws CloneNotSupportedException {
Resume a = new Resume();
a.setName("段飞");
a.setSex("男");
a.setAge("29");
a.setTimeArea("1998-2003");
a.setCompany("南京");
Resume b = (Resume) a.clone();
b.setTimeArea("2000-2006");
Resume c = (Resume) a.clone();
c.setAge("24");
a.display();
b.display();
c.display();
}
}


一般在初始化的信息不发生变化的情况下,克隆是最好的办法,这既隐藏了对象创建的细节,又对性能是大大的提高。

不用重新初始化对象,而是动态地获得运行时的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值