为什么我需要使用原型(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/