Design patterns are class structures that solve many of the commonly occurring issues in software. If algorithms are like baking instructions, then design patterns are like blueprints. They allow us to share a similar vocabulary of abstraction above that of implementation.
The Singleton pattern is a creational pattern – it helps you to instantiate objects in a particular way. It allows for the existence of only one instance of an object, but everyone has global access to that object. Singletons can help improve performance and reduce memory footprint.