Singleton Pattern in Software Engineering
Today I learned about Singleton design pattern in Software Engineering.
And, I thought why not publish an article on it.
What is Singleton?
Singleton is a design pattern in Software Engineering where you can create more than one instance of a class.
Why is it important?
Singleton patterns are important and are quite widely used because:
- It helps in efficient memory management.
- Helps to share data accross multiple servers if you are scaling and have a stateful backend.
- Ensures possible hazards if a new dev joins.
How can it be achieved?
While "Singleton" sounds like a heavy term, but it is just a jargon.
You can achieve it just by making the constructor private.
Here's an example to better understand this:
Let's say you get a lot of requests and you scale you server from one to two.
Now the 2nd server creates a "new" instance of the 'RequestCounter' class starting from zero.
This means, despite the userId = 1
having made 6 reqs in total will have two different records in two different servers.
Because, the instance created by BE1 is completely different from BE2.
Here's a better solution using singleton:
In this solution: both the backends BE1 and BE2 share the same state of request count for the user with id = 1
.
That's it for this one.
Hope you got to learn something from this post.
Share, Like and Follow.
More knowledge on the way!
Subscribe to my newsletter
Read articles from Moyez Rabbani directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Moyez Rabbani
Moyez Rabbani
I am a FullStack Web3 Developer from India. I have been enthusiastic and learning about the web3 space since 1.5 years. I can build websites and smart contracts, and connected them together. My Portfolio -->