原型模式

2016-08-08  本文已影响0人  tdeblog

1.定义#

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在JAVA中通过继承Clonealbe接口,并实现其中的clone方法,即可实现原型的拷贝,需要注意的是clone方法拷贝的是二进制流,所以使用clone生成新的对象时不会调用类的构造方法,并且clone是浅拷贝方法,注意是用深拷贝拷贝非基本类型(基本类型为int,char,string等)。另外被定义为final的属性无法被拷贝。

2.类图#

十分简单,此处不贴图了。

3.实现#

public class Thing implements Cloneable{
    private ArrayList<String> arrayList = new ArrayList<String>();
    @Override
    public Thing clone() {
        //通过继承Cloneable接口,实现clone方法
        Thing thing = null;
        try {
            thing = (Thing) super.clone();
            //深拷贝问题解决
            thing.arrayList = (ArrayList<String>) this.arrayList.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return thing;
    }

    public void setValue(String value) {
        this.arrayList.add(value);
    }

    public ArrayList<String> getValue() {
        return this.arrayList;
    }

}
上一篇 下一篇

猜你喜欢

热点阅读