# What is Singleton Design Pattern The singleton pattern is a GOF creational design pattern that restricts the instantiation of a class to single object. This is useful when exactly one object is needed to coordinate actions across the system. ## Diagram ![Diagram](https://github.com/premaseem/DesignPatternsJava9/blob/singleton/diagrams/singleton%20pattern%20diagram.png "Diagram") ### When to use Singleton Design Pattern Application needs one, and only one, instance of an object. Additionally, lazy initialization and global access are necessary and state of objects needs to be shared accross application. Logger and Print Spooler are candidate application for singleton. ### Learn Design Patterns with Java by Aseem Jain This repository contains working project code used in video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain". ### Course link: https://www.packtpub.com/application-development/learn-design-patterns-java-9-video ### ![ http://in.linkedin.com/in/premaseem](https://github.com/premaseem/DesignPatternsJava9/blob/master/linkedin.png "http://in.linkedin.com/in/premaseem") Profile: http://in.linkedin.com/in/premaseem ### Authors blog on design patterns: https://premaseem.wordpress.com/category/computers/design-patterns/ ### Software Design pattern community face book page: https://www.facebook.com/DesignPatternGuru/ ### Note: * This code base will work on Java 9 and above versions. * `diagrams` folders carry UML diagrams. * `pattern` folder has code of primary example. * `patternBonus` folder has code of secondary or bonus example.