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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了克隆原型设计模式的功能?相关的知识,希望对你有一定的参考价值。

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

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

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

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

答案

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

以上是关于克隆原型设计模式的功能?的主要内容,如果未能解决你的问题,请参考以下文章

原型模式

大话设计模式读书笔记--6.原型模式

Java学习笔记——设计模式之六.原型模式(浅克隆和深克隆)

原型模式的深克隆和浅克隆

Java设计模式之原型模式

设计模式----原型模式