See Singleton Pattern here...
If the program will always need an instance, or if the cost of creating the instance is not too large in terms of time/resources, the programmer can switch to eager initialization, which always creates an instance.
Singleton.java
package me.dhanoop.singleton; /** * * @author dhanoopbhaskar */ public class Singleton { private static final Helper helper = new Helper(); public static Helper getHelper() { return helper; } public static void main(String[] args) { Runnable runnable = new Runnable() { @Override public void run() { Singleton.getHelper(); } }; new Thread(runnable).start(); new Thread(runnable).start(); new Thread(runnable).start(); } }
Output:
Created Helper Object
Advantages:
- The instance is not constructed until the class is used.
- There is no need of synchronization, which means all the threads will see the same instance even without expensive locking mechanism.
- The final keyword means that the instance cannot be redefined, ensuring that one (and only one) instance ever exists.
0 Comments