Dealing with design pattern systems and solutions sometimes can be easy and other times can complex and very hard to maintain for that as I mentioned in my last article How to design your next software . I passed throw all types of existing design patterns but today I will make a simple read on how the Singleton Works. So a Singleton is a creational design pattern that lets you ensure that a class has only one instance while providing a global access point to this instance. So what that means, The Singleton solves two major problems :
1. Ensure that the class has just a single instance
so why should anyone control and limit access to a class? the answer to that question is to control the same shared resources like a file or database and to limit access threads.
2. Provide a global access point to that instance
There are some global objects and variables that may be stored and you called every time you need them but in a normal constructor way, your objects and variable are not safe and leads to app crush because the code ios potentially overwrite those objects and variable. Just like a global variable, the Singleton pattern lets you access some object from anywhere in the program. However, it also protects that instance from being overwritten by other codes.
So my example is that pseudo-code :
I declared a public final class and I call it Singleton then I create a static instance of the class itself, and after that, I passed for it a single string parameter to instantiate the value of the value variable. after that, I assure you that the instance can't be null. finally, the getValue function is to return the value of the ower variable.
In this main class, I just instantiate a new String variable to get the value from the Singleton class and I passed an argument string to it. Then I used a java IO to return it to the screen.
Conclusion With this type of design pattern solution sometimes it will be hard to keep all the classes in a single call, Singleton. Using other creational Patterns can help better than the Singleton but it keeps the better one and the most reconizable.