xxxxxxxxxx
public class SingletonOnDemand {
private SingletonOnDemand () {}
private static class Singleton {
private static final SingletonOnDemand instance = new SingletonOnDemand();
}
public static SingletonOnDemand getInstance () {
System.out.println("create instance");
return Singleton.instance;
}
}
xxxxxxxxxx
public class SingletonClass {
private static final SingletonClass SINGLE_INSTANCE = new SingletonClass();
private SingletonClass() {}
public static SingletonClass getInstance() {
return SINGLE_INSTANCE;
}
}
xxxxxxxxxx
- A private constructor
- A static field containing its only instance
- A static factory method for obtaining the instance
public final class ClassSingleton
{
private static ClassSingleton INSTANCE;
private String info = "Initial info class";
private ClassSingleton()
{
}
public static ClassSingleton getInstance()
{
if(INSTANCE == null)
{
INSTANCE = new ClassSingleton();
}
return INSTANCE;
}
// getters and setters
}
=============Usage============
To use our ClassSingleton, we simply need to get the instance statically:
ClassSingleton classSingleton1 = ClassSingleton.getInstance();
System.out.println(classSingleton1.getInfo()); //Initial class info
ClassSingleton classSingleton2 = ClassSingleton.getInstance();
classSingleton2.setInfo("New class info");
System.out.println(classSingleton1.getInfo()); //New class info
System.out.println(classSingleton2.getInfo()); //New class info
xxxxxxxxxx
public class Singleton {
// Private static variable to hold the single instance of the class
private static Singleton instance;
// Private constructor to prevent instantiation from outside the class
private Singleton() {
// Initialization code, if needed
}
// Public static method to get the single instance of the class
public static Singleton getInstance() {
// Lazy initialization: create the instance if it doesn't exist yet
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// Other methods and variables can be added here as needed
}
xxxxxxxxxx
public class DB {
// champs de l'objet
private DB(){
// initialisation des champs
}
private static final DB INSTANCE = new DB();
public static DB getInstance(){
return INSTANCE;
}
}
xxxxxxxxxx
public final class SomeSingleton {
public static final SomeSingleton INSTANCE;
private SomeSingleton() {
INSTANCE = (SomeSingleton)this;
System.out.println("init complete");
}
static {
new SomeSingleton();
}
}
xxxxxxxxxx
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
xxxxxxxxxx
class SingletonExample {
// private field that refers to the object
private static SingletonExample singleObject;
private SingletonExample() {
// constructor of the SingletonExample class
}
public static SingletonExample getInstance() {
// write code that allows us to create only one object
// access the object as per our need
}
}
xxxxxxxxxx
class SingletonExample {
// private field that refers to the object
private static SingletonExample singleObject;
private SingletonExample() {
// constructor of the SingletonExample class
}
public static SingletonExample getInstance() {
// write code that allows us to create only one object
// access the object as per our need
}
}