【问题标题】:Motivation for Clone Objects [closed]克隆对象的动机 [关闭]
【发布时间】:2013-11-14 18:22:57
【问题描述】:

何时使用克隆(请不要定义)?我可以启动一个对象并使用该对象,那么为什么要在现实世界中使用克隆呢?

浅克隆的动机是什么(我知道它复制值类型并引用引用类型)?

请给我一个现实世界的例子,而不是克隆、深度克隆或浅克隆的定义。

提前致谢。

【问题讨论】:

    标签: c# clone


    【解决方案1】:

    请给我一个现实世界的例子

    如果您有一个不是线程安全的对象,但您可以将其克隆到多个独立的实例,然后您可以在不同的线程上使用这些单独的实例。

    【讨论】:

      【解决方案2】:

      请给我一个现实世界的例子

      我前几天用的一个例子:

      我基于第三方组件开发了一个用于打印不同类型文档的组件。

      在我的上下文中,这是一个复杂的构造,而不是“便宜”和“容易”实例化。有时我需要多个打印组件。因此,使用浅层克隆并仅替换配置对象(提供所有打印相关环境信息的打印组件的“子对象”)为我提供了我需要的工作量。

      【讨论】:

        【解决方案3】:

        例如,您可能希望保留当前对象值,并且在某些情况下您可能希望回滚到以前的值。想想应用程序的设置。在设置窗口中,您可以按取消或保存。如果按取消,则需要放弃所有更改。所以你克隆设置对象,将其显示给用户,如果按下保存,只需从克隆对象获取值并设置为真实对象

        【讨论】:

          猜你喜欢
          • 2019-03-21
          • 1970-01-01
          • 2014-07-02
          • 2015-09-20
          • 2012-02-26
          • 2012-04-24
          • 2011-11-07
          • 2017-11-28
          • 2013-02-18
          相关资源
          最近更新 更多