This chapter continues the e-tailing case study discussed in Chapter 14, “The Strategy Pattern” and Chapter 15, “The Decorator Pattern.”
In this chapter,
I introduce the Singleton pattern.
I describe the key features of the Singleton pattern.
I introduce a variant to the Singleton called the Double-Checked Locking pattern.
I describe some of my experiences using the Singleton pattern in practice.
The Singleton pattern and the Double-Checked Locking pattern are very simple and very common. Both are used to ensure that only one object of a particular class is instantiated. The distinction between the patterns is that the Singleton pattern is used in single-threaded applications while the Double-Checked Locking pattern is used in multithreaded applications.[1]
[1] If you do not know what a multithreaded application is, don't worry; you need only concern yourself with the Singleton pattern at this time.