单例模式

来源:互联网 发布:js array splice无参数 编辑:程序博客网 时间:2024/06/05 20:34

保证一个类仅有一个实例,并提供访问它的全局访问点。
可以避免一个全局使用的类频繁的创建与销毁。
判断实例是否存在如果存在直接返回,不存在就创建。
这里写图片描述
私有构造函数,创建实例,获取实例方法接口。

public class SingleObject {   //创建 SingleObject 的一个对象   private static SingleObject instance = new SingleObject();   //让构造函数为 private,这样该类就不会被实例化   private SingleObject(){}   //获取唯一可用的对象   public static SingleObject getInstance(){      return instance;   }   public void showMessage(){      System.out.println("Hello World!");   }}//懒汉式public class SingleObject {   //创建 SingleObject 的一个对象   private static SingleObject instance;   //让构造函数为 private,这样该类就不会被实例化   private SingleObject(){}   //获取唯一可用的对象   public static SingleObject getInstance(){      if(instance == null){       instance = new Singleobject();      }       return instance;   }   public void showMessage(){      System.out.println("Hello World!");   }}//懒汉线程安全public class Singleton {      private static Singleton instance;      private Singleton (){}      public static synchronized Singleton getInstance() {      if (instance == null) {          instance = new Singleton();      }      return instance;      }  } public class SingletonPatternDemo {   public static void main(String[] args) {      //不合法的构造函数      //编译时错误:构造函数 SingleObject() 是不可见的      //SingleObject object = new SingleObject();      //获取唯一可用的对象      SingleObject object = SingleObject.getInstance();      //显示消息      object.showMessage();   }}

其他实现方式:

原创粉丝点击