设计模式--原型模式

来源:互联网 发布:淘宝如何给差评 编辑:程序博客网 时间:2024/06/03 22:07

1 原型模式通过克隆对象,减少系统开销,要克隆的对象必须要继承Cloneable接口,否者会报错。
自定义一个克隆操作接口:

public interface ICloneable {    public Object Clone();}

实体类:

package com.tang.design.clone;public class Resume implements Cloneable,ICloneable{    private String name;    private Integer age;    public Resume(String name, Integer age) {        this.name = name;        this.age = age;    }    @Override    public Object Clone() {        // TODO Auto-generated method stub        Object obj=null;        try {            obj=(Object)this.clone();        } catch (CloneNotSupportedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return obj;    }    public void setName(String name) {        this.name = name;    }    public void setAge(Integer age) {        this.age = age;    }    public void display(){        System.out.println("name:"+name+" age:"+age);    }}

测试:

public class TextMain {    public static void main(String[] args){        Resume resume=new Resume("张三", 1);        Resume resume2=(Resume)resume.Clone();        resume2.setName("李四");        Resume resume3=(Resume)resume2.Clone();        resume3.setAge(2);        resume.display();        resume2.display();        resume3.display();    }}

通过克隆模式,创建重复的对象时通过克隆,不仅减少重复的属性设置,还减少系统开销。
参考书籍:《大话设计模式》