读书人

狂言设计模式_原型模式

发布时间: 2013-03-12 11:19:35 作者: rapoo

大话设计模式_原型模式

以复制简历为例子.

package com.wzs.design;/** * 大话设计模式--page88 原型模式 *  * @author Administrator *  */public class PrototypePattern {public static void main(String[] args) throws CloneNotSupportedException {WorkExperience workExperience = new WorkExperience("2011-2-2", "2013-3-3", "中国微软");Resume a = new Resume("大鸟", "男", "23", workExperience);Resume b = (Resume) a.clone();WorkExperience workExperience2 = new WorkExperience("2011-2-2", "2013-3-3", "中国谷歌");b.setWorkExperience(workExperience2);Resume c = (Resume) a.clone();c.setAge("99");a.display();b.display();c.display();}}/* * 简历 */class Resume implements Cloneable {private String name;private String sex;private String age;private WorkExperience workExperience;public Resume(String name, String sex, String age, WorkExperience workExperience) {this.name = name;this.sex = sex;this.age = age;this.workExperience = workExperience;}public void display() {System.out.println("name:" + name + " sex:" + sex + " age:" + age + " " + workExperience);}@Overrideprotected 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 WorkExperience getWorkExperience() {return workExperience;}public void setWorkExperience(WorkExperience workExperience) {this.workExperience = workExperience;}}/* * 工作经历 */class WorkExperience {private String workDataStart;// 工作开始时间private String workDataEnd;// 工作结束时间private String company;// 公司public WorkExperience(String workDataStart, String workDataEnd, String company) {this.workDataStart = workDataStart;this.workDataEnd = workDataEnd;this.company = company;}public String getWorkDataStart() {return workDataStart;}public void setWorkDataStart(String workDataStart) {this.workDataStart = workDataStart;}public String getWorkDataEnd() {return workDataEnd;}public void setWorkDataEnd(String workDataEnd) {this.workDataEnd = workDataEnd;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}@Overridepublic String toString() {return " 开始时间:" + workDataStart + " 结束时间:" + workDataEnd + " 公司名称:" + company;}}


1楼adam_zs昨天 16:30
[code=java]n输出结果:nname:大鸟 sex:男 age:23 开始时间:2011-2-2 结束时间:2013-3-3 公司名称:中国微软nname:大鸟 sex:男 age:23 开始时间:2011-2-2 结束时间:2013-3-3 公司名称:中国谷歌nname:大鸟 sex:男 age:99 开始时间:2011-2-2 结束时间:2013-3-3 公司名称:中国微软n[/code]

读书人网 >软件开发

热点推荐