克隆原型设计模式的功能?

问题描述 投票:3回答:1

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

那么clone()功能是深或浅的副本?

如果它是一个深层拷贝,而不是我理解的一切,但如果它是浅的,如果两个不同的对象(一个使用原型模式从另一个创建)观察相同的状态对象,那将是混乱,而不是意味着这些对象没有不同完全(它们是共享的,因为它们共享相同的状态对象)。

任何人都可以向我澄清这种情况吗?

oop design-patterns copy prototype clone
1个回答
1
投票

Java Object clone方法实现了Prototype设计模式。使用prototypical实例创建一个新实例。但clone只是给你一个浅的副本,它不是一个深刻的副本。所以这是一个危险的副本。如果需要深层副本,则必须明确实现它。 clone复制原始值,但不复制对象引用。因此原始和克隆都将指向相同的对象引用,如果修改了同一个对象引用,则将对象置于危险状态。

© www.soinside.com 2019 - 2024. All rights reserved.