设计模式—原型模式

本文介绍了原型模式,它属于创建者模式,核心操作是克隆。创建对象不是用new,而是实例对象本身的复制。通过代码展示可知,它能让使用者无需重新配置就获得原对象拷贝,在对象创建参数设置繁琐或需大量参数一致对象时很有用,与单例模式不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型模式依旧属于创建者模式
依旧先看定义,在看UML图
原型模式
原型模式
是不是感觉看起来很蒙逼?其实原型模式最重要的就是克隆这个操作了。
原型模式创建一个对象的方式不是new而是实例对象本身的复制!(这里和JS中的prototype有些不同)
来看代码吧先:

原型类的接口(依赖倒转原则:依赖接口编程):

interface Prototype{
     Prototype clone();
}

原型的具体实现类:

class  ContretePrototype{
   
          Int age = 0;
          String name = null;
          ContretePrototype(int age , String name){
                     this.age = age;
                     this.name = name;
          }
          Prototype clone(){
                    return new ContretePrototype(this.age,this.name);
          }
}

使用者:

Prototype  proto = new  ContretePrototype(1,"Json");
//现在我们需要一个新的对象,但是我们希望得到头一个行对象的一模一样的属性
Prototype  proto2 = proto.clone();

通过以上的代码,我们就可以知道原型模式了。

看了看代码,我们发现原型模式虽然生成了新的对象,但是新对象内部的信息是原来对象的拷贝,而且我们是通过一个实例对象生成新的实例对象的!

原型模式可以让使用者在无需重新进行配置的情况下,获得一个原对象的拷贝。在一个对象创建时候参数设置十分繁琐时候十分有用,当然也在需要大量参数一致对象的时候有用。

它和单例模式不同,单例模式的对象永远是一个,而原型模式的对象虽然参数一致但是却是不同的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值