当前位置: 首页 > 图灵资讯 > 技术篇> 代理模式-单例模式

代理模式-单例模式

来源:图灵教育
时间:2023-06-20 09:29:26

确保一个类只有一个例子,并提供一个访问它的全球访问点。

解决方案:频繁创建和销毁全局使用的类别。

关键代码:构造函数是私有的。

饿汉风格:类加载初始化,浪费内存。

Main

public class SingletonPatternDemo {   public static void main(String[] args) {       ////非法构造函数      ///编译错误:构造函数 SingleObject() 是不可见的      //SingleObject object = new SingleObject();       ////获得唯一可用的对象      SingleObject object = SingleObject.getInstance();    }}

懒汉模式,线程不安全

public class Singleton {      private static Singleton instance;      private Singleton (){}        public static Singleton getInstance() {      if (instance == null) {          instance = new Singleton();      }      return instance;      }  }

懒汉风格,线程安全

public class Singleton {      private static Singleton instance;      private Singleton (){}      public static synchronized Singleton getInstance() {      if (instance == null) {          instance = new Singleton();      }      return instance;      }  }

饿汉式,线程安全

public class Singleton {      private static Singleton instance = new Singleton();      private Singleton (){}      public static Singleton getInstance() {      return instance;      }  }