java设计模式——原型模式
来源:互联网 发布:不干胶贴纸打印软件 编辑:程序博客网 时间:2024/05/19 03:19
《大话设计模式》第九章
package ch09;public class WorkExperience implements Cloneable {private String workDate = null;private String company = null;public String getWorkDate() {return workDate;}public void setWorkDate(String workDate) {this.workDate = workDate;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}@Overrideprotected Object clone() throws CloneNotSupportedException {WorkExperience workExperience = (WorkExperience)super.clone();workExperience.company = new String(this.company);workExperience.workDate = new String(this.workDate);return workExperience;}}
package ch09;public class Resume implements Cloneable {private String name = null;private String sex = null;private int age = 0;private WorkExperience workExperience = null;public Resume(String name) {this.name = name;this.workExperience = new WorkExperience();}public Resume(WorkExperience workExperience) throws CloneNotSupportedException {this.workExperience = (WorkExperience)workExperience.clone();}public void setPersonalInfo(String sex, int age) {this.age = age;this.sex = sex;}public void setWorkExperience(String workDate, String company) {this.workExperience.setWorkDate(workDate);this.workExperience.setCompany(company);}public void display() {System.out.println(name + ", " + sex + ", " + age);System.out.println(workExperience.getWorkDate() + ", " + workExperience.getCompany());}@Overrideprotected Object clone() throws CloneNotSupportedException {Resume resume = new Resume(this.workExperience);resume.age = this.age;resume.name = this.name;resume.sex = this.sex;return resume;}}
package ch09;import java.text.SimpleDateFormat;public class Client {SimpleDateFormat sdf = new SimpleDateFormat();/** * @param args * @throws CloneNotSupportedException */public static void main(String[] args) throws CloneNotSupportedException {Resume a = new Resume("大鸟");a.setPersonalInfo("男", 29);a.setWorkExperience("1998-2000", "X公司");Resume b = (Resume)a.clone();b.setWorkExperience("1998-2006", "Y公司");Resume c = (Resume)a.clone();c.setWorkExperience("1998-2003", "Z公司");a.display();b.display();c.display();}}
原型模式,从字面意思来理解,不是很好理解,反正对我来说是这样的。原型模式其实就是克隆,必须实现Cloneable接口,然后要重写protected Object clone() throws CloneNotSupportedException这个方法。clone还分为浅复制和深复制。我的代码里的是深复制。
- java设计模式——原型模式
- Java设计模式——原型模式
- Java设计模式——原型模式
- java设计模式——原型模式
- Java设计模式——原型模式
- Java设计模式——原型模式
- JAVA设计模式 — 原型模式(Prototype)
- java设计模式—原型模式
- java设计模式—原型模式
- Java设计模式—原型模式
- 设计模式—原型模式
- 设计模式—原型模式
- 设计模式—原型模式
- 设计模式—原型模式
- Java设计模式(11) —— 原型
- 设计模式——原型设计模式
- 设计模式——原型设计模式
- java 原型设计模式
- 2012年度个人总结
- 12306系统的分析
- POJ2632--Crashing Robots--模拟
- Android之UI学习篇七:ImageView实现适屏和裁剪图片的功能
- 大战2013之三:决心一个人开发一个全民3D游戏(前言)
- java设计模式——原型模式
- 基础篇1.3 Android的总体架构描述
- 卓越绩效的绩效团队文化
- Codeforces Round #145 (Div. 1) 240F TorCoder
- 给初学者一封信[转载]
- ZeroMQ指南-第1章-基础-修复这个世界
- 淘宝二维码对网店推广的好处
- gnome-terminal 快捷键基本用法(转)
- 解决Hyper-V 客户虚拟机的 Destination host unreachable 问题