克隆的实际用法是什么?

时间:2013-05-09 15:27:48

标签: c# java clone

任何人都可以给我一个使用克隆的实际用法,我理解它是如何完成的以及它中的类型,但我没有看到它的实际用法。我也在某处读到它用于保存对象的状态,但我仍然认为对象的整个状态很少如此重要。

2 个答案:

答案 0 :(得分:0)

有时你将对象属性加载到表单然后将每个属性绑定到(文本框,组合框,...),在对(文本框,复选框,...)进行更改后,即使取消也可以'得到原始值,所以克隆是最好的选择

克隆你的对象然后绑定,如果要取消原始对象总是不变,这只是一个案例

答案 1 :(得分:0)

如果在对象X中有一个对象y封装(例如它是私有的),但是你提供了一个访问器方法(例如getY()),那么你就有可能将引用返回给你的私有对象而这并不好。您不希望客户端代码能够获取对它的引用。因此,您可以在getY()中复制或克隆该对象。如上所述虽然复制可能比克隆更受欢迎 - 请参阅Effective Java第11项。

以下是示例代码:

public class X {
    private Date y = new Date();

    // other code here

    public Date getY() {
        //this could be bad:
        //return y;
        //this is good:
        return new Date(y);
    }