单例编程设计

xiaoxiao2021-02-28  119

懒汉式

//懒汉式 public class Singleton { // 作用:无法被外部实例化。 private Singleton() { }; // 静态有个重要的特点。一个类只有一个 private static Singleton single = null; // 静态工厂方法:产生本类对象 public static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; } }

饿汉式

//饿汉式 public class Singleton1 { private Singleton1() { }; // 不管有没有。先new一个 private static Singleton1 single = new Singleton1(); public static Singleton1 getInstance() { return single; } }

完整的饿汉式设计

//完整的饿汉式设计:使用了双重检测机制实现线程安全的饿汉式 public class Singlentonsyn { private static volatile Singlentonsyn instance = null; private Singlentonsyn() { } public static Singlentonsyn getInstance() { if (instance == null) { synchronized (Singlentonsyn.class) { if (instance == null) { instance = new Singlentonsyn(); } } } return instance; } }

静态内部类实现线程安全的单例模式

//静态内部类实现线程安全的单例模式 public class SingletonHand { private SingletonHand() { } private static class SingletonHandHandler { private static SingletonHand instance = new SingletonHand(); } public static SingletonHand getInstance() { return SingletonHandHandler.instance; } }
转载请注明原文地址: https://www.6miu.com/read-20867.html

最新回复(0)