原型模式

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

类图:

代码:

publicclass Propotype {

    publicintid;

    public String name;

    public Propotype clone(){

       returnthis.clone();

    }

}

publicclass ConcretePropotype1 extends Propotype {

    publicintage;

   

    public Propotype clone(){

       ConcretePropotype1 clone=new ConcretePropotype1();

       clone.age=this.age;

       clone.id=super.id;

       clone.name=super.name;

       return clone;

    }

}

publicclass ConcretePropotype2 extends Propotype {

    public String sex;

   

    public Propotype clone(){

       ConcretePropotype2 clone=new ConcretePropotype2();

       clone.sex=this.sex;

       clone.id=super.id;

       clone.name=super.name;

       return clone;

    }

}

publicstaticvoid main(String[] args) {

       Propotype obj=new ConcretePropotype2();

       obj.name="jeor";

       Propotype obj2= obj.clone();

       System.out.println("改变值前");

       System.out.println(obj.name);

       System.out.println(obj2.name);

      

       obj.name="JEOR";

       System.out.println("\n改变值后");

       System.out.println(obj.name);

       System.out.println(obj2.name);

    }

看法:

原型模式就是克隆对象,克隆分为深克隆(对象里的对象也克隆)和浅克隆(对象里的对象是同一个对象)。java已经实现了此模式objec类的c lone方法,调用clone方法返回一个克隆体。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值