加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第9章《原型模式》

发布时间:2020-12-13 20:56:02 所属栏目:百科 来源:网络整理
导读:/** @Author: cxh @CreateTime: 18/1/7 11:49 @ProjectName: JavaBaseTest */ public class Client { public static void main(String[] args) { Resume resume1=new Resume("李沁"); resume1.setSelfInfo("女",22); resume1.setWorkExperience("北京",11,"

/**

  • @Author: cxh

  • @CreateTime: 18/1/7 11:49

  • @ProjectName: JavaBaseTest
    */
    public class Client {
    public static void main(String[] args) {
    Resume resume1=new Resume("李沁");
    resume1.setSelfInfo("女",22);
    resume1.setWorkExperience("北京",11,"技术研发");
    resume1.print();

     //原型模式的使用:根据指定对象resume1创建同类型的新对象resume2,且对对象的创建做定制,定制通过两个set方法完成.
     Resume resume2=(Resume)resume1.clone();
     resume2.setSelfInfo("女",25);
     resume2.setWorkExperience("天津",9,"技术支持");
     resume2.print();
    
     //clone()方法对引用的拷贝是浅拷贝
     resume1.print();

    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 11:49

  • @ProjectName: JavaBaseTest
    */
    public class Resume implements Cloneable{
    private String name;
    private String sex;
    private int age;
    private WorkExperience experience;

    Resume(String name){
    this.name=name;
    experience=new WorkExperience();
    }

    @Override
    public Object clone() {
    return this;
    }

    //设置个人信息
    public void setSelfInfo(String sex,int age){
    this.sex=sex;
    this.age=age;
    }

    //设置工作经历
    public void setWorkExperience(String location,int time,String job){

     experience.setWorkSpace(location);
     experience.setStayTime(time);
     experience.setJob(job);

    }

    //打印简历信息
    public void print(){
    System.out.println("name:"+name);
    System.out.println("sex:"+sex);
    System.out.println("age:"+age);
    System.out.println("workSpace: 工作地点:"+experience.getWorkSpace()+",工作时长(年):"+experience.getStayTime()+",岗位:"+experience.getJob());
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 11:50

  • @ProjectName: JavaBaseTest
    */
    public class WorkExperience {
    private String workPlace;
    private int stayTime;
    private String job;

    public void setWorkSpace(String workSpace) {
    this.workPlace = workSpace;
    }

    public void setStayTime(int stayTime) {
    this.stayTime = stayTime;
    }

    public void setJob(String job) {
    this.job = job;
    }

    public String getWorkSpace() {
    return workPlace;
    }

    public int getStayTime() {
    return stayTime;
    }

    public String getJob() {
    return job;
    }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读