Summary
In this chapter, we learned about creational design patterns and how they help us manage object creation.
We started by using the object
keyword to make a class with only one instance. Then, we discussed using a companion
object for Static Factory Methods, which lets subclasses define which kind of object to create.
After that, we talked about smart casts, which make it easier to work with different types of objects. We applied them in the Abstract Factory design pattern to create groups of related objects.
Next, we explored the Builder design pattern, where we saw how to create complex objects step by step. We also found out that functions can have default values for their inputs, and we can use names for the inputs instead of just their positions.
Finally, we looked at the copy()
function of data classes. This is like making a clone of an object, and it helps us when using the Prototype design pattern to make similar objects with small changes.
The interesting...