原型模式(Prototype)

本文深入探讨了Java中的原型设计模式与对象克隆机制,包括克隆的基本概念、与new操作的区别、Java中提供的克隆方法、浅度克隆与深度克隆的概念以及它们的优缺点。

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

1、本质:克隆生成对象

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

3、与new的区别:

    new的对象实例只有默认值

    克隆的对象拥有和被克隆对象完全相同的值

4、Java中本身提供的克隆方法:

    1、被克隆类实现Cloneable接口

    2、被克隆类中添加clone方法  

 1 public Object clone(){
 2     Object obj = null;
 3 
 4     try{
 5 
 6         obj = super.clone();
 7 
 8     }catch(CloneNotSupportedException e){
 9         e.printStackTrace();
10     }
11 
12     return obj;
13 }

5、浅度克隆和深度克隆

    浅度克隆:只负责克隆按值传递的数据                --基本数据类型,String

    深度克隆:除了浅度克隆要克隆的值外,还克隆应用类型的数据     --需要递归克隆,即:属性对象也需要正确实现克隆方法

6、优点:

    对客户端隐藏具体的实现类型

    在运行时动态改变具体的实现类型

7、缺点:

    每个原型的子类都必须实现clone的操作

转载于:https://www.cnblogs.com/hdwons/p/dp_prototype.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值