原型模式-Prototype Pattern 对象的克隆——原型模式(二):工作周报的原型模式解决方案
2016-10-26 15:53
330 查看
7.3 完整解决方案
Sunny公司开发人员决定使用原型模式来实现工作周报的快速创建,快速创建工作周报结构图如图7-3所示:图7-3 快速创建工作周报结构图
在图7-3中,WeeklyLog充当具体原型类,Object类充当抽象原型类,clone()方法为原型方法。WeeklyLog类的代码如下所示:
//工作周报WeeklyLog:具体原型类,考虑到代码的可读性和易理解性,只列出部分与模式相关的核心代码 class WeeklyLog implements Cloneable { private String name; private String date; private String content; public void setName(String name) { this.name = name; } public void setDate(String date) { this.date = date; } public void setContent(String content) { this.content = content; } public String getName() { return (this.name); } public String getDate() { return (this.date); } public String getContent() { return (this.content); } //克隆方法clone(),此处使用Java语言提供的克隆机制 public WeeklyLog clone() { Object obj = null; try { obj = super.clone(); return (WeeklyLog)obj; } catch(CloneNotSupportedException e) { System.out.println("不支持复制!"); return null; } } } |
class Client { public static void main(String args[]) { WeeklyLog log_previous = new WeeklyLog(); //创建原型对象 log_previous.setName("张无忌"); log_previous.setDate("第12周"); log_previous.setContent("这周工作很忙,每天加班!"); System.out.println("****周报****"); System.out.println("周次:" + log_previous.getDate()); System.out.println("姓名:" + log_previous.getName()); System.out.println("内容:" + log_previous.getContent()); System.out.println("--------------------------------"); WeeklyLog log_new; log_new = log_previous.clone(); //调用克隆方法创建克隆对象 log_new.setDate("第13周"); System.out.println("****周报****"); System.out.println("周次:" + log_new.getDate()); System.out.println("姓名:" + log_new.getName()); System.out.println("内容:" + log_new.getContent()); } } |
****周报**** 周次:第12周 姓名:张无忌 内容:这周工作很忙,每天加班! -------------------------------- ****周报**** 周次:第13周 姓名:张无忌 内容:这周工作很忙,每天加班! |
|
相关文章推荐
- 对象的克隆——原型模式(二):工作周报的原型模式解决方案
- 对象的克隆---原型模式(一):大同小异的工作周报,原型模式概述
- 原型模式-Prototype Pattern 对象的克隆——原型模式(一):大同小异的工作周报,原型模式概述
- 原型模式-Prototype Pattern 对象的克隆——原型模式(三):带附件的周报【浅克隆,深克隆】
- 【怎样写代码】对象克隆 -- 原型模式(二):解决方案
- 对象的克隆——原型模式(四)
- 对象的克隆——原型模式(三):浅克隆,深克隆
- 设计模式学习(八):对象的克隆-原型模式
- 克隆一个对象——原型模式深入解析
- 对象的克隆——原型模式(一)
- 对象的克隆——原型模式(三):浅克隆,深克隆
- 克隆一个对象——原型模式深入解析
- 对象的克隆——原型模式(四)
- C++设计模式6--原型模式Prototype--原始对象的克隆
- 对象的克隆——原型模式(一)
- 对象的克隆——原型模式(二)
- 设计模式之五:原型模式—对象的克隆
- 对象的克隆——原型模式(二)
- 对象的克隆——原型模式(三)
- 对象的克隆——原型模式