Skip to main content

What is singleton design pattern?

Singleton design pattern

Image result for singleton design pattern
Singelton Design Pattern.

 The singleton design pattern is a software design pattern which ensures that a class of anyone object has only one instance (of computer science). In other words, we can also say that it restricts the instantiation of a class of any object. We require a singleton pattern because it may sometimes happen that we require only one object to coordinate with the action across the system. This concept is also applicable when we have to restrict instantiation over a number of objects.


The singleton pattern helps us to solve problems like:
  • Helps to ensure that a class has one instance.
  • Helps to access the sole instance of a class easily.
  • Helps to a class to control its instantiation.
  • Helps to restrict a number of instances of a class.
Now, you might be thinking about how to solve such problems. Here are a few key points which might help you:
  • The first key point is to make a class which is responsible by itself for controlling its instantiations.
  • The second point is to hide the constructor (those objects which are created from classes by subroutines) of a class. This is important to do because by doing this you declare privacy that ensures the class would never be instantiated from outside of the class.
  • The last point is to define a public static operation (for eg. , getInstance()) as this would return the sole instance of the class and is also easily accessible by using class name and operation name.
Another question might strike you when to use Singleton? Here is the answer to that, you need to use Singleton when you find that these criteria mentioned below are satisfying:
  • There must be ownership of a single instance.
  • There is no provision of global access.
  • And there is lazy initialization (kind of lazy evaluation of instantiation of objects/classes).
Abstract factory, builder and prototype pattern use singleton pattern for their implementations. State objects and façade objects are also singletons. The reason behind why Singleton patterns are more preferable than compared to global variables is that while using Singleton pattern at that time you are sure enough how many numbers of instances you are working with and you can change your mind and manage any number of instances you want to.
 The java class that allows us to create one object per JVM is called a singleton java class.
 E.g
 The Logger class of the Log4j API is given as singleton java class.

 Rules
 To create the singleton class, we need to have the following things.
 1. Static member
 It gets memory only once because of static, it contains the instance of the Singleton class.
 2. Private constructor
 It will prevent to instantiate the Singleton class from outside the class.
 3. Static factory method
 This provides the global point of access to the Singleton object and returns the instance to the caller.

Here is the syntax of Singleton implementation in two very known languages Java 
Singleton implementation in Java
  1. public final class Singleton
  2. {
  3. private static final Singleton INSTANCE = new Singleton();
  4. private Singleton() {}
  5. public static Singleton getInstance() {
  6. return INSTANCE;
  7. }
  8. }

Comments

Popular posts from this blog

What is Amazon Web Services (AWS)?

 Amazon Web Services Amazon Web Services is a cloud computing platform provided by Amazon. The AWS offers all three service models such as Software as a Service (SaaS), Infrastructure as a Service (IAAS), and Platform as a Service (PaaS). There are more services which comprise the Amazon Web Services including Amazon Elastic Compute Cloud (EC2) which provides virtual servers, Amazon Simple Storage Service (S3) which provides scalable storage for backups, analytics. Then there are other services such as Amazon relational database management system, DynamoDB, AWS Migration hub, and more. AWS provides services in almost every category from mobile development to data analytics. Benefits of using Amazon Web Services: AWS gives access to organizations to use programming models , database and operating system. It provides a cost effective service in which you only have to pay for what you use. Applications can be deployed in multiple regions with just a few clicks. ...

What is Java Unit testing, and how do I learn it...

What is Java Unit testing, and how do I learn it... Java Unit testing is when you create small tests to verify that small bits of your code are working as “units.” Typically you write these tests in Java itself. In each test, you might get the system into a certain state, then you interact with the system to exercise the behavior you want to test. You finally verify whether or not the system did what you expected. A primary goal is to reduce the number of defects that you integrate into the rest of the source base. You’ll find numerous tutorial articles if you search. Most people use JUnit, a simple tool that you’ll find in Eclipse or IDEA.

Which is best, Java or Python in 2020?

Depends what you want to do. You  can  use either language for almost anything, but they definitely have different strengths and weaknesses that can help you decide which one is better for what you are doing. Python is good for: Numeric computing and AI All kinds of science and academic stuff (including natural language processing) Rapid prototyping Website backends Learning and teaching programming concepts all kinds of workflow scripting and other small programs for getting simple jobs done. interfacing with C libraries. Java is good for: Creating and distributing applications (on mobile and desktop) high-performance network backends. creating robust, reliable software at a large scale, especially in teams. implementing more foundational software systems like databases (though you might find C++ a better match for that) As a starting point to learning the JVM and leveraging it for a number of other interesting languages it hosts like Kotlin, Scala, Cloju...