单例模式
单例(singleton)模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。
显然单例模式的要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
从具体实现角度来说,就是以下三点:
一是单例模式的类只提供私有的构造函数,
二是类定义中含有一个该类的静态私有对象,
三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。
public class SingletonClass{ private static volatile SingletonClass instance=null; public static SingletonClass getInstance(){ synchronized(SingletonClass.class){ if(instance==null){ instance=new SingletonClass(); } } return instance; } private SingletonClass(){} }
另一种实现方式:
public class BootTest { private static BootTest ourInstance = new BootTest(); //这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。 public static BootTest getInstance() { return ourInstance; } //private 外部无法通过构造函数创建对象; // 从而也只能通过BootTest类来访问static的函数,来得到BootTest的实例对象 private BootTest() { } }