Building immutable classes
Mutability is very important in object-oriented programming. In fact, whenever we expose mutable properties, we create a class that will generate mutable instances. However, sometimes a mutable object can become a problem and in certain situations, we want to avoid objects changing their state. For example, when we work with concurrent code, an object that cannot change its state solves many concurrency problems and avoids potential bugs.
Note
An immutable object is also known as a non-mutating object.
For example, we can create an immutable version of the previous MutableVector3D
class to represent an immutable 3D vector. The new ImmutableVector3D
class has three immutable instance properties declared with the let
keyword instead of the previously used var
keyword: x
, y
, and z
. We can create a new ImmutableVector3D
instance and initialize the immutable instance properties. Then, we can call a summed
method with the delta values of x
, y
, and z
as arguments.
Note
Swift...