设计模式-原型模式

本文详细介绍了原型模式,包括其定义、使用场景、UML类图解析。重点探讨了深拷贝与浅拷贝的区别,以及`new`操作与`clone`方法在创建对象时的不同之处,为实际开发中选择合适的方法提供了指导。
摘要由CSDN通过智能技术生成

1.原型模式的介绍

原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板的实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可以定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下 ,复制一个已经存在的实例可使程序运行的更高效。

2.原型模式的定义

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

3.原型模式的使用场景

3.1 类初始化需要消耗非常多的资源,这资源包括数据、硬件资源等,通过原型拷贝避免这些消耗。
3.2 通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式。
3.3 一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。

4.UML类图


5.深拷贝和浅拷贝

5.1 深拷贝(深克隆)深拷贝把要复制的对象所引用的对象复制了一遍
5.2 浅拷贝(浅克隆)浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。
5.3 Java中对象的克隆,为了获取对象的一份拷贝,可以利用Object类的clone()方法。必须遵循下面三点:
A.在派生类中覆盖基类的clone()方法,并声明为public[Object类中的clone()放为
protected]
B.在派生类中的clone()方法中,调用supe
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值