为什么需要使用原型设计模式?取而代之的是,我可以直接分配该值吗?例如
按照原型设计模式,我们必须像这样克隆:
Typist typistCopy = (Typist)typist.Clone();
我可以这样做:
Typist typistCopy = typist;
原型设计模式在这里的重要性是什么?
最佳答案
您演示的两个操作执行不同的操作。您需要哪种取决于您要做什么。
这不会创建对象的副本/克隆:
Typist typistCopy = typist;
它所做的一切都会创建一个新变量,该变量引用内存中的同一对象。执行该行代码后,您仍然只有一个
Typist
对象。您只有两个引用它的变量。对一个变量所做的任何更改都将反映在这两个变量中,因为它们都引用同一对象。另一方面,这将创建对象的副本或克隆:
Typist typistCopy = (Typist)typist.Clone();
(或者,至少,允许对象本身决定是否需要复制/克隆,并执行其自身的封装逻辑,以说明对对象意味着什么。)
执行完这一行代码后,您现在拥有两个
Typist
对象,可以彼此独立地使用和操作这些对象。对一个变量所做的任何更改都不会反映在另一个变量中,因为它们引用了不同的对象。关于c# - 原型(prototype)设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55829213/