原型模式

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;
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容