本BLOG上原创文章未经本人许可,不得用于商业用途。转载请注明出处,否则保留追究法律责任的权利。
-
基本概念
在某些特殊场合中一个类对外提供且只提供一个对象,这样的类叫做单例类。
而设计单例类的思想和模式叫做单例设计模式,主要用于固定场合,例如启动任务管理器,无论启动多少次,都只有一个窗口。
-
实现流程
- 私有化构造方法,使用private关键字修饰。
- 声明本类类型的引用指向本类类型的对象,使用private和static共同修饰。
- 提供共有的get方法负责将成员变量的数值返回出去,使用static关键字修饰。
代码示例,以饿汉式为例
public class Singleton { //2.声明本类类型的引用指向本类类型的对象 private static Singleton sin = new Singleton(); //饿汉式 //1.私有化构造方法,使用private关键字修饰 private Singleton() {} //3.提供共有的get方法负责将成员变量的数值返回出去 public static Singleton getSingleton() { return sin; } }
-
实现方式
单例设计模式的实现方式有两种:饿汉式和懒汉式,在开发中推荐饿汉式。
饿汉式:直接创建对象。
懒汉式:调用方法时才创建对象
懒汉式代码示例
public class Singleton { private static Singleton sin = null; //懒汉式 private Singleton() {} public static Singleton getSingleton() { if (sin == null) { sin = new Singleton(); } return sin; } }