- 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.
- 零起步玩轉掌控板與Mind+
- Python爬蟲開發與項目實戰
- Python機器學習經典實例
- C++反匯編與逆向分析技術揭秘(第2版)
- 軟件工程基礎與實訓教程
- Visual Basic程序設計(第三版)
- 可視化H5頁面設計與制作:Mugeda標準教程
- Learning iOS Penetration Testing
- Scratch少兒編程高手的7個好習慣
- Building Microservices with .NET Core 2.0(Second Edition)
- 軟件測試項目實戰之功能測試篇
- Developing RESTful Web Services with Jersey 2.0
- TensorFlow程序設計
- 寫給所有人的編程思維
- Java程序設計