Monday, 12 July 2010

Singleton pattern

Problem
There must be exactly one instance of a class, and it must be accessible to clients from a well-known access pointExample: Trash in windows

Solution
Create a class that
1) Keeps its constructor private
2) Keeps an instance in a private, static variable
3) Provides a public, static method to retrieve that instance

Implementation code

public class SingletonClass {

private static SingletonClass instance = new SingletonClass ();

public static SingletonClass getSingletonClassObject() {
return instance;
}

private SingletonClass() {
// do sth here ...
}

// more methods ...
}

Test class

public class TestSingtonClass {

public static void main(String[] args) {
  SingletonClass s1 = SingletonClass.getSingletonClass();
  SingletonClass s2 = SingletonClass.getSingletonClass();

  System.out.println(s1);
  System.out.println(s2);
  // use SingletonClass object here ...
}

}

Singleton pattern in JDK
See class java.lang.Runtime

......

public class Runtime {

private static Runtime currentRuntime = new Runtime();

public static Runtime getRuntime() {
  return currentRuntime;
}

/** Don't let anyone else instantiate this class */
private Runtime() {}

......

}

Recommended books:




0 comments:

Post a Comment