- 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.
- Learn Blockchain Programming with JavaScript
- SoapUI Cookbook
- Ext JS Data-driven Application Design
- Learning Apache Mahout Classification
- Visual C#.NET程序設計
- Java EE 7 Performance Tuning and Optimization
- Learning SciPy for Numerical and Scientific Computing(Second Edition)
- Java EE Web應用開發基礎
- 快樂編程:青少年思維訓練
- Keil Cx51 V7.0單片機高級語言編程與μVision2應用實踐
- 精益軟件開發管理之道
- Azure for Architects
- 基于Docker的Redis入門與實戰
- Implementing NetScaler VPX?(Second Edition)
- C++ Windows Programming