Thread-safe Singleton class
New Singleton class name has renamed to ThreadSafeLazyLoadedIvoryTower and called it from App.java
This commit is contained in:
parent
cffe592c9c
commit
5687976a91
@ -1,10 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Singleton pattern ensures that the class (IvoryTower) can have only one
|
* Singleton pattern ensures that the class (IvoryTower) can have only one
|
||||||
* existing instance and provides global access to that instance.
|
* existing instance and provides global access to that instance.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
@ -15,5 +15,12 @@ public class App {
|
|||||||
System.out.println("ivoryTower1=" + ivoryTower1);
|
System.out.println("ivoryTower1=" + ivoryTower1);
|
||||||
System.out.println("ivoryTower2=" + ivoryTower2);
|
System.out.println("ivoryTower2=" + ivoryTower2);
|
||||||
|
|
||||||
|
ThreadSafeLazyLoadedIvoryTower threadSafeIvoryTower1 = ThreadSafeLazyLoadedIvoryTower
|
||||||
|
.getInstance();
|
||||||
|
ThreadSafeLazyLoadedIvoryTower threadSafeIvoryTower2 = ThreadSafeLazyLoadedIvoryTower
|
||||||
|
.getInstance();
|
||||||
|
System.out.println("threadSafeIvoryTower1=" + threadSafeIvoryTower1);
|
||||||
|
System.out.println("threadSafeIvoryTower2=" + threadSafeIvoryTower2);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
package com.iluwatar;
|
|
||||||
|
|
||||||
public class SingletonClass {
|
|
||||||
|
|
||||||
private static SingletonClass singletonInstance = null;
|
|
||||||
|
|
||||||
public synchronized static SingletonClass getSingleton() {
|
|
||||||
/*
|
|
||||||
* The instance gets created only when it is called for first time.
|
|
||||||
* Lazy-loading
|
|
||||||
*/
|
|
||||||
if (singletonInstance == null) {
|
|
||||||
singletonInstance = new SingletonClass();
|
|
||||||
}
|
|
||||||
|
|
||||||
return singletonInstance;
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Thread-safe Singleton class.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ThreadSafeLazyLoadedIvoryTower {
|
||||||
|
|
||||||
|
private static ThreadSafeLazyLoadedIvoryTower instance = null;
|
||||||
|
|
||||||
|
public synchronized static ThreadSafeLazyLoadedIvoryTower getInstance() {
|
||||||
|
/*
|
||||||
|
* The instance gets created only when it is called for first time.
|
||||||
|
* Lazy-loading
|
||||||
|
*/
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new ThreadSafeLazyLoadedIvoryTower();
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user