创建型设计模式-原型模式

来源:互联网 发布:随州seo排名 编辑:程序博客网 时间:2024/05/29 15:02

原型模式:(对象克隆,每次都是新的对象,单例模式返回唯一对象)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

原型模式参与角色:

抽象原型类:定义具有克隆自己的方法的接口
具体原型类:实现克隆方法
客户类:通过克隆生成一个新的对象

抽象原型类:AbstractPrototype

public abstract class AbstractPrototype{    private String str;    public AbstractPrototype(String str){        this.str=str;    }    public String getStr(){        return str;    }    public void show(){        System.out.println(str);    }    /**     * 提供克隆自身的方法,实现对象的创建     * @return     */    public abstract AbstractPrototype createPrototypeObject();}

具体原型类:ConcretePrototype

public class ConcretePrototype extends AbstractPrototype implements Cloneable{    public ConcretePrototype(String str) {        super(str);    }    /**     * 克隆的具体实现方法:浅度复制(只复制属性,不复制其引用的对象)     */    @Override    public AbstractPrototype createPrototypeObject(){        ConcretePrototype cp = null;        try{            cp =(ConcretePrototype) super.clone(); //Java RTTI机制        }catch (Exception e) {                e.printStackTrace();            }        return cp;    }}

测试代码:

//浅复制:只复制对象内容本身,不涉及到关联对象(元对象和拷贝对象的引用指向同一个对象)AbstractPrototype ap=new ConcretePrototype("Hello");ap.show();AbstractPrototype ap1=ap.createPrototypeObject();ap1.show();

结果:
这里写图片描述

0 0
原创粉丝点击