现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。
现采用原型模式(Prototype)来实现上述要求,得到如图所示的类图。
[Java代码]
Class WorkExperience ______ Cloneable //工作简历
Private String workDate;
Private String company;
Public Object Clone()
______;
obj.workDate=this.workDate;
Obj.company-this.company;
Return obj;
Class Resume ______ Cloneable //简历
Private String name;
Private String sex;
Private String age;
Private WorkExperience work ;
Public Resume(String name)
This.name=name; work=new WorkExperience();
Private Resume(WorkExperience work)
This.woek=______;
Public void SetPersonallnfo( String sex , String age) /*代码略*/
Public void SetWorkExperience(String workDate, String company) /*代码省略*/
Public Object Clone( )
Resume obj=______;
//其余代码省略
Return obj;
Class WorkResume
Public static void main(String[] args)
Resume a=new Resume("张三");
a.SetPersonallnfo("男", "29");
a.SetWorkExperience("1998~2000","XXX公司");
Resume b=______;
b.SetWorkExperience("2001~2006","YYY公司");
参考答案:implements
WorkExperience obj=newWorkExperience()
implements
(WorkExperence)work.Clone()
new Resume(this.work)
a.Clone()
解析: 本题考查原型模式的概念及应用,原型模型是一种对象创建模型,用原型实体指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模型允许一个对象再创建另一个可定制的对象,无需知道任何创建的细节。
所有的Java类都继承自java.lang.Object,而object类提供一个Clone()方法,可以将一个Java对象复制一份。因此在Java中可以直接使用Object提供的Clone()方法来实现对象的克隆。能够实现克隆的Java类必须实现一个标识接口Cloneable,表示这个Java类支持复制。