Singleton
Now, we are going to spend a few words on a pattern that is among the most used in object-oriented programming, which is the Singleton pattern. As we will see, Singleton is one of those patterns that has a trivial implementation in Node.js that's almost not worth discussing. However, there are a few caveats and limitations that every good Node.js developer must know.
The purpose of the Singleton pattern is to enforce the presence of only one instance of a class and centralize its access. There are a few reasons for using a single instance across all the components of an application:
- For sharing stateful information
- For optimizing resource usage
- To synchronize access to a resource
As you can imagine, those are quite common scenarios. Take, for example, a typical Database
class, which provides access to a database:
// 'Database.js'
export class Database {
constructor (dbName, connectionDetails) {
// ...
}
//...