Chapter 6. Creational Design Patterns

From this chapter onwards, we will be delving into the actual design patterns that are out there. We have already mentioned the importance of knowing and being able to properly make use of the different design patterns that exist.

Design patterns can be thought of as best practices or even templates that can be used in solving specific problems. The number of problems that a developer will have to tackle is endless, and in many cases, different design patterns have to be combined. However, based on the aspects of a program on which a piece of code is written to solve a problem, we can split design patterns in the following main groups:

  • Creational
  • Structural
  • Behavioral

This chapter will focus on the creational design patterns and of course, we will look at them from the point of view of the Scala programming language. We will go through the following top level topics:

  • What are creational design patterns?
  • Factory method
  • Abstract factory
  • Other factory design patterns
  • Lazy initialization
  • Singleton
  • Builder
  • Prototype

After formally defining the creational design patterns, we will look at each one of them separately in greater detail. We will emphasize on when and how to use them, when to avoid some patterns, and of course, show some relevant examples.

What are creational design patterns?

Creational design patterns, as the name suggests, deal with object creation. In some cases, creating objects in a program could involve some extra complexities, and creational design patterns hide these complexities in order to make the use of software components easier. The object creation complexity could be caused by any of the following:

  • The number of initialization parameters
  • Required validation
  • The complexity of acquiring the required parameters

The preceding list could possibly be expanded even more and in many cases, these factors are present not just individually, but in combinations.

We will be focusing on the aspects of creational design patterns in the next sections of this chapter and hopefully, you will have a good understanding of why they are needed and how to use them in real life.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.187.62