首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原型设计模式的克隆函数?

原型设计模式的克隆函数?
EN

Stack Overflow用户
提问于 2018-09-03 06:56:46
回答 1查看 248关注 0票数 3

OOP中原型设计模式最重要的部分之一是,我们不是从头开始创建新的对象,我们只是使用clone()函数从现有对象中克隆它们。

那么clone()函数是深拷贝还是浅拷贝呢?

如果它是一个深拷贝,那么我理解所有东西,但是如果它是浅拷贝,如果两个不同的对象(一个使用原型模式从另一个对象创建)监视相同的状态对象,那么它将是混乱的,这意味着这些对象根本没有不同(它们是链接在一起的,因为它们共享相同的状态对象)。

有没有人能向我澄清一下这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-03 16:55:12

Java Object clone方法实现了Prototype设计模式。将使用prototypical实例创建一个新实例。但是clone只给了你一个浅拷贝,而不是深拷贝。因此,这是一个相当危险的副本。如果你需要一个深度拷贝,你必须显式地实现它。clone复制原始值,但不复制对象引用。因此,原始对象和克隆对象都将指向相同的对象引用,如果其中一个进行了修改,则会将相同的引用应用于另一个对象,从而使您的对象处于危险状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52141568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档