gpt4 book ai didi

c# - 原型(prototype)设计模式

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:32 25 4
gpt4 key购买 nike

为什么我需要使用原型(prototype)设计模式?取而代之的是,我可以直接分配该值吗?例如

根据原型(prototype)设计模式,我们必须像这样克隆:

Typist typistCopy = (Typist)typist.Clone();

同样我可以这样做:

Typist typistCopy = typist; 

原型(prototype)设计模式在这里的重要性是什么?

最佳答案

您演示的两个操作执行不同的操作。您需要哪一个取决于您想要做什么。

不会创建对象的副本/克隆:

Typist typistCopy = typist;

它所做的一切都是创建一个新的变量,它引用内存中的相同对象。执行该行代码后,您仍然只有 一个 Typist 对象。您只有两个变量引用它。对一个变量所做的任何更改都会反射(reflect)在两个变量中,因为它们都引用同一个对象。

另一方面,这会创建对象的副本克隆:

Typist typistCopy = (Typist)typist.Clone();

(或者,至少,允许对象自己决定是否需要复制/克隆,并执行自己的封装逻辑来确定这对对象意味着什么。)

执行该行代码后,您现在有 两个 Typist 对象,它们可以彼此独立地使用和操作。对一个变量所做的任何更改都不会反射(reflect)在另一个变量中,因为它们引用不同的对象。

关于c# - 原型(prototype)设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com