Skip to main content

SingleTon DesignPattern

Singleton pattern comes into creational design pattern category, the main objective of the creational pattern is to instantiate an object and with Singleton Pattern we will allow only one instance of the class to be created. Here in this article we will understand how we can create an Singleton class in Java.

Singleton Class Code:
package designpattern.creational.singleton;
public class MySingleTon {
   private MySingleTon() {
   }

   private static MySingleTon instance = null ;

   public static synchronized MySingleTon getInstance() {
      if(instance == null) {
          System.out.println("Creating New Instance");
          instance = new MySingleTon();
} else {
    System.out.println("Returning Existing Instance");
}
return instance;
   }

   public Object clone() throws CloneNotSupportedException {
       throw new CloneNotSupportedException();
   }
}
Code Explanation:
  • Why the constructor declared private? – This is required so that the Singleton class could not be instantiated by any other class.
  • Why the getInstance() method is synchronized? – This is required so that at any point of time only single class can access the Singleton Class. which means at any point of time we can have only single instance of class going outside the singleton class.
  • Here we have created an static instance of MySingleTon Object, this object will be returned whenever user calls the Singleton class.
  • Inside getInstance() we check whether the static instance of Singleton class holds the object if yes than we return the object else we create an new instance of the class.
  • You must be wondering why clone method is written here. This is required so that we are not able to clone this class and create multiple instance of the SingleTon Class.

Client Code:
package designpattern.creational.singleton;
public class SingleTonClient {

     public static void main(String[] args) {
 //Will not compile, throw an error
 MySingleTon s0 = new MySingleTon(); 

 MySingleTon s0 = MySingleTon.getInstance();
 System.out.println("Count:- " + s0.hashCode());

 try {
  Thread.sleep(10);
 } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }

 MySingleTon s1 = MySingleTon.getInstance();
 System.out.println("Count:- " + s1.hashCode()); 

 MySingleTon s2 = MySingleTon.getInstance();
 System.out.println("Count:- " + s2.hashCode()); }
}
Here if you see if you try to create an new object of MySingleTon class, the java compiler will give an error that “Constructor MySingleton is not visible”. Then we try to access the object of the Singleton class and to cross check the hashcode printed is the same.

Comments

Popular posts from this blog

Mobile Message Organizer

Got a basic requirement that i think every mobile should have, all the mail clients have this facility and i dont see any big difficulties on this other than the storage problem which is not a problem at all as we got GB of spaces in our memory cards. Well i am talking about the organizing the messages in Inbox , categorization of messages. Suppose i want to store all the messages from one of my friend say A in a folder called Personal, my existing mobile device Nokai E71 doesn't have this feature inbuilt (Ofcourse if you want you can make a folder and move the messages manually but here i am talking about the idea of automating this procedure). Only thing we need to do is , we have to store the rules in separate location , rules will be defined by the user and then device will follow these rules.There are no or very less software available which satisfy this requirement for mobile device.this is so simple but basic requirement as per the end user. I am going to make this one

Indian Education System : Let's shape it

Good advice is always certain to be ignored, but that's no reason not to give it.                                                                                        By Agatha Christie   This is one of the things that I wanted to write from long back and per my opinion it should be matter of at most important for any educated person of India. Today in this article I would like  focus on reminding people about the importance of education and educational departments  no matter those are government related or privately held. Whatever we are today is only because the level of education that we have, other than Jobs and money education adds lot many dimension to our life, one can easily distinguish an educated and uneducated person. Respect, honesty, integrity, values and so many useful things which are foundation of well being comes from very basic education that we get from various teachers and institute. Educational institute are known for the quality education they pr

The Bourne Betrayal | Book Review

Novel by Eric Van Lustbader and Robert Ludlum I like all Robert Ludlum’s novels including those which are written by Evan Lastbadder. To me his novels have taken fiction to the next level. During my way back to Hyderabad from my last summer trip to hometown I bought paperback version of “The Bourne Betryal”. This novel was full of Lastbadder’s style of writing than Robert Ludlum’s one.  I took almost 6 months to complete it. This novel has something different to offer actually. Plot is exciting but the story is not very accelerating. Jason bourn and Martin Lindros, When martin Lindros decided to come back in the field operations with the aim to destroy Fadi and When Martin is out the track , Jason is the only help possible in the situation. Story takes you through various struggle of Jason to bring Martin back home. There are few things where author has not even paid any attention for example how does an ordinary Pakistani Waiter will have that much of information   Towards the e