设计模式之原型模式2,prototype
来源:互联网 发布:淘宝一妹子买了古着店 编辑:程序博客网 时间:2024/05/29 18:55
package liu.prototype2.demo;
public class WorkExperience implements Cloneable{
private String workDate;
private String company;
public void setWorkDate(String workDate) {
this.workDate = workDate;
}
public String getWorkDate() {
return workDate;
}
public void setCompany(String company) {
this.company = company;
}
public String getCompany() {
return company;
}
public Object clone(){
Object object=null;
try {
object = super.clone();
} catch (CloneNotSupportedException e) {
System.err.println("AbstractSpoon is not Cloneable");
e.printStackTrace();
}
return object;
}
}
---------------------------------------
package liu.prototype2.demo;
private String company;
public void setWorkDate(String workDate) {
this.workDate = workDate;
}
public String getWorkDate() {
return workDate;
}
public void setCompany(String company) {
this.company = company;
}
public String getCompany() {
return company;
}
public Object clone(){
Object object=null;
try {
object = super.clone();
} catch (CloneNotSupportedException e) {
System.err.println("AbstractSpoon is not Cloneable");
e.printStackTrace();
}
return object;
}
}
---------------------------------------
package liu.prototype2.demo;
public class Resume implements Cloneable {
private String name ;
private String sex;
private String age;
private WorkExperience work;
public Resume(String name){
this.name = name;
work = new WorkExperience();
}
public Resume (WorkExperience work){
this.work = (WorkExperience)work.clone();
}
public void setPersonalInfo(String sex, String age){
this.age = age;
this.sex = sex;
}
public void setWorkExperience(String workDate, String company){
work.setCompany(company);
work.setWorkDate(workDate);
}
public void display(){
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
System.out.println("性别:"+sex);
System.out.println("工作时间:"+work.getWorkDate());
System.out.println("公司:"+work.getCompany());
}
public Object clone(){
Resume obj = new Resume(this.work);
obj.name = this.name;
obj.age = this.age;
obj.sex = this.sex;
return obj;
private String sex;
private String age;
private WorkExperience work;
public Resume(String name){
this.name = name;
work = new WorkExperience();
}
public Resume (WorkExperience work){
this.work = (WorkExperience)work.clone();
}
public void setPersonalInfo(String sex, String age){
this.age = age;
this.sex = sex;
}
public void setWorkExperience(String workDate, String company){
work.setCompany(company);
work.setWorkDate(workDate);
}
public void display(){
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
System.out.println("性别:"+sex);
System.out.println("工作时间:"+work.getWorkDate());
System.out.println("公司:"+work.getCompany());
}
public Object clone(){
Resume obj = new Resume(this.work);
obj.name = this.name;
obj.age = this.age;
obj.sex = this.sex;
return obj;
}
}
-------------------------------------------
package liu.prototype2.demo;
public class Main {
public static void main(String[] args) {
Resume a = new Resume("大鸟");
a.setPersonalInfo("male", "29");
a.setWorkExperience("2009", "xx company");
Resume b = (Resume)a.clone();
b.setWorkExperience("2009", "yy company");
Resume c = (Resume) a.clone();
c.setPersonalInfo("male", "24");
c.setWorkExperience("2008", "zz company");
a.display();
b.display();
c.display();
}
c.setPersonalInfo("male", "24");
c.setWorkExperience("2008", "zz company");
a.display();
b.display();
c.display();
}
}
- 设计模式之原型模式2,prototype
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype(原型)
- 设计模式之Prototype原型设计模式
- (创建模式)设计模式之Prototype(原型)
- 设计模式之原型模式(Prototype)
- 设计模式读书笔记之原型模式(Prototype)
- 设计模式之单例模式1,2.singleton
- 使用pssh进行并行批量操作
- UVa:10000 Longest Paths (DAG上的最长路)
- 软件工程(四)面向对象技术
- 设计模式之代理模式,proxy
- 设计模式之原型模式2,prototype
- oracel出现超打开游标的最大值原因及解决办法
- 在Ubuntu下ADT识别不出真机的解决办法
- Base64编解码(C++版)
- 数组跳跃游戏 Jump Game
- 设计模式之原型模式1,prototype
- Gradle构建工具的学习与使用
- 设计模式之备忘录模式,memento
- 设计模式之迭代器模式,iterator