Hackerrank Java Singleton Pattern Solution
- Published
- Updated
- Reading time
- 2 min read
- Length
- 278 words
"The singleton pattern is a design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system."
- Wikipedia: Singleton Pattern
Complete the Singleton class in your editor which contains the following components:
- A private Singleton non parameterized constructor.
- A public String instance variable named .
- Write a static method named getSingleInstance that returns the single instance of the Singleton class.
Once submitted, our hidden Solution class will check your code by taking a String as input and then using your Singleton class to print a line.
Input Format
You will not be handling any input in this challenge.
Output Format
You will not be producing any output in this challenge.
Sample Input
hello worldSample Output
Hello I am a singleton! Let me say hello world to youSolution in java8#
Approach 1.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
class Singleton{
private Singleton() {}
public String str;
private static Singleton singleton;
static Singleton getSingleInstance() {
if (singleton == null)
singleton = new Singleton();
return singleton;
}
}Approach 2.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
class Singleton{
public String str;
private static Singleton instance;
private Singleton() {}
public static Singleton getSingleInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}Approach 3.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.lang.reflect.*;
class Singleton{
public String str;
private static final Singleton instance;
static {
instance = new Singleton();
}
private Singleton() {
}
public static Singleton getSingleInstance() {
return instance;
}
}