设计模式上机实验4原型模式实验

设计模式上机实验4原型模式实验

ID:38720803

大小:122.04 KB

页数:4页

时间:2019-06-18

设计模式上机实验4原型模式实验_第1页
设计模式上机实验4原型模式实验_第2页
设计模式上机实验4原型模式实验_第3页
设计模式上机实验4原型模式实验_第4页
资源描述:

《设计模式上机实验4原型模式实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、青岛理工大学课程实验报告课程名称软件设计与体系结构班级软件132实验日期2015.05.09姓名孙玉东学号201307217实验成绩实验名称原型模式实验实验目的及要求1.熟悉原型模式的核心思想。2.掌握原型模式的各种实现方法;3.比较深复制和浅复制特点及其实现方式。实验环境Win7,eclipse实验内容1.利用原型模式实现模拟实现个人简历的复制投放(1)设计个人简历类;简历包括:姓名,性别,年龄,工作经历等;工作经历包括:工作单位,进入时间,离开时间,职位等;(2)利用Memberwise实现浅复制;(3)自己写克隆方法实现深复制。2.利用

2、序列化/反序列化实现深复制(1)实现深复制;(2)比较上述各种方法的区别。算法描述及实验步骤方式一:方式二:自己写方法实现深克隆4方式三:序列化反序列化方式实现克隆调试过程及实验结果方式一:方式二:方式三:4总结1.实现原型模式可以有多种方式。2.实现浅克隆可以实现Cloneable接口,并重写clone方法,内部可以调用父类的实现创建克隆对像。3.实现深克隆要求所有类都要实现clone方法。4.序列化方式实现深克隆,所有类必须实现Seializable接口,因为涉及到io操作,该方法效率不是太高。附录代码:publicResumeclone

3、(){Resumeo=null;try{o=(Resume)super.clone();//实现浅克隆}catch(CloneNotSupportedExceptione){e.printStackTrace();}returno;}publicResumeclone2(){Resumeresume=newResume();resume.age=this.age;resume.name=this.name;resume.sex=this.sex;resume.work=this.work.clone();returnresume;}@Supp

4、ressWarnings("resource")publicResumeclone3(){Resumeresume=null;try{OutputStreamout=newFileOutputStream(newFile("clone.txt"));ObjectOutputStreamobjectOutputStream=newObjectOutputStream(out);objectOutputStream.writeObject(this);4InputStreamin=newFileInputStream(newFile("clone

5、.txt"));ObjectInputStreamobjectInputStream=newObjectInputStream(in);resume=(Resume)objectInputStream.readObject();}catch(Exceptione){e.printStackTrace();resume=null;}returnresume;}packagecom.ilmare.propertype;publicclassMain{publicstaticvoidmain(String[]arg0){WorkExperience

6、work=newWorkExperience();work.setDepart("人事部门");Resumeresume=newResume();resume.setName("张三");resume.setAge(10);resume.setWork(work);ResumeresumeClone=resume.clone3();System.out.println("resumeClone.getAge()==resume.getAge():"+(resumeClone.getAge()==resume.getAge()));System

7、.out.println("resumeClone.getName()==resume.getName():"+(resumeClone.getName()==resume.getName()));System.out.println("resumeClone.getWork()==resume.getWork():"+(resumeClone.getWork()==resume.getWork()));System.out.println(resumeClone.getWork()==resume.getWork()?"浅克隆":"深克隆"

8、);System.out.println("克隆对象工作部门:"+resumeClone.getWork().getDepart());}4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。