C# 成员式克隆是否比创建新对象便宜?
我在读关于原型创意设计模式的书时,发现了一条信息,指出克隆对象比创建一个新对象花费更少——通过呼叫新操作员 这是真的吗?如果是,为什么C# 成员式克隆是否比创建新对象便宜?,c#,.net,clr,prototype,cloning,C#,.net,Clr,Prototype,Cloning,我在读关于原型创意设计模式的书时,发现了一条信息,指出克隆对象比创建一个新对象花费更少——通过呼叫新操作员 这是真的吗?如果是,为什么 谢谢克隆确实需要创建一个新对象,因此您不会在初始化的创建部分节省太多。但是,您可以在初始化的其他元素上保存: 如果一个对象需要填充集合,并且构造函数接受未知数量的元素,那么克隆例程可以通过预先调整集合的大小来节省一些处理 如果一个对象在其构造函数中创建了不可变的对象,那么原型可以将对其自身对象的引用直接设置到结果对象中。因为这些被引用的内部对象是不可变的,所以
谢谢克隆确实需要创建一个新对象,因此您不会在初始化的创建部分节省太多。但是,您可以在初始化的其他元素上保存:
- 如果一个对象需要填充集合,并且构造函数接受未知数量的元素,那么克隆例程可以通过预先调整集合的大小来节省一些处理
- 如果一个对象在其构造函数中创建了不可变的对象,那么原型可以将对其自身对象的引用直接设置到结果对象中。因为这些被引用的内部对象是不可变的,所以可以共享它们。这样,您的系统将在创建这些依赖对象时节省成本