What is immutable class?
- An object is immutable if it cannot be change after initializing
- Because, immutable object can not be changed, every time we try to update the information in that class,
–> Actually , we have create another object and it change the copied object( not original object)
What is the advantage of immutable class?
- An immutable object is good for caching purpose, because you don’t worry about the value change
- Immutable class support thread safe in mutiple thread
How can we create immutable class
There are some conditions if we want to an immutable class:
- Keep class is private so it can not be inherited
- Make all the field of class is private so it can not be access directly
- Don’t provide setter method for variable Initialize all the field in a constructor performing deep copy
- when you manipulate with the object, you return a copy object using construct rather than return the actual object reference
- More convinent, you can use builder pattern to create immutable class