// Singleton.java
// Demonstrates Singleton design pattern
public final class Singleton {
// Singleton object to be returned by getSingletonInstance
private static Singleton singleton = new Singleton();
// private constructor prevents instantiation by other objects
private Singleton()
{
System.err.println( "Singleton object created." );
}
// return existing Singleton object
public static Singleton getSingletonInstance()
{
return singleton;
}
}
// SingletonTest.java
// Attempt to create two Singleton objects
public class SingletonTest {
// run SingletonExample
public static void main( String args[] )
{
Singleton firstSingleton;
Singleton secondSingleton;
// create Singleton objects
firstSingleton = Singleton.getSingletonInstance();
secondSingleton = Singleton.getSingletonInstance();
// the "two" Singletons should refer to same Singleton
if ( firstSingleton == secondSingleton )
System.err.println( "firstSingleton and secondSingleton " +
"refer to the same Singleton object" );
}
}
Previou page | Next page |