- Design Patterns and Best Practices in Java
- Kamalmeet Singh Adrian Ianculescu LUCIAN PAUL TORJE
- 219字
- 2021-06-25 20:52:35
Shallow clone versus deep clone
When cloning objects, we should be aware of the deepness of cloning. When we clone an object that contains simple datatypes, such as int and float, or immutable objects, such as strings, we should simply copy those fields to the new object, and that's it.
A problem arises when our objects contain references to other objects. For example, if we have to implement a clone method for a Car class that has an engine and a list of four wheels, we should create not only a new Car object but also a new Engine and four new Wheel objects. After all, two cars cannot share the same engine and the same wheels. This is called a deep clone.
Shallow cloning is a method of cloning only the object that is the subject of cloning. For example, if we have to implement a clone method for a Student object, we are not going to clone the Course object it points to. More than one Student object can point to the same Course object.
In practice, we should decide whether we need deep, shallow, or mixed cloning based on each scenario. Usually, shallow cloning corresponds to the aggregation relation described in Chapter 1, From Object-Oriented to Functional Programming, and deep cloning to the composition relation.
- Building a Game with Unity and Blender
- Magento 2 Theme Design(Second Edition)
- Internet of Things with Intel Galileo
- Amazon S3 Cookbook
- 信息技術應用基礎
- 學習正則表達式
- RabbitMQ Essentials
- Creating Data Stories with Tableau Public
- Clean Code in C#
- Python網絡爬蟲技術與應用
- Web Developer's Reference Guide
- ASP.NET求職寶典
- MongoDB Cookbook(Second Edition)
- Web編程基礎:HTML5、CSS3、JavaScript(第2版)
- 實戰Python網絡爬蟲