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

按照原型设计模式,我们必须像这样克隆:

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/

10-13 06:23