java 设计模式 优缺点_java设计模式2:原型模式(机制\优缺点分析\使用场景)...

1、 原型模式实现机制

原型模式在设计模式中相对比较简单,它直接通过实现 Cloneable接口,再重写 clone()方法返回想要的对象就OK 了。

一起来看下代码 :

public class ProtoType implements Cloneable {

public ProtoType(){

System.out.println("new ");

}

/**

* 重写clone

* @return

* @throws CloneNotSupportedException

*/

@Override

protected Object clone() throws CloneNotSupportedException {

System.out.println("clone");

return (ProtoType)super.clone();

}

//测试 : 依次打印 new clone

public static void main(String[] args) throws CloneNotSupportedException {

//通过new 方式

ProtoType protoType = new ProtoType();

//通过clone方式,注意不走构造函数

ProtoType protoType2 =(ProtoType) protoType.clone();

// false 两个对象是不同引用

System.out.println(protoType ==protoType2);

}

}

可以看到,我们需要多少对象,直接调用clone()克隆即可。

2、优缺点分析

优点: 它是在运行时操作对象,操作的是内存中的二进制流,在创建大对象时,相比 new 一个对象,性能优势明显。

缺点:必须实现Cloneable接口

3、使用场景

希望以一个对象为原型,创建其他近似的对象的时候;

代码优化场景, 业务中用的比较少,一般很少单独使用,会结合工厂方法模式使用;

多个调用者使用时,并且需要修改对象中的值,可以考虑原型模式来提供对象;

ok,很简单吧🤙🤙🤙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值