Java的单例模式
单例设计模式就是采用一定的方法保证:
- 在整个软件系统中,对于某个类只能存在一个对象实例,
- 并且该类只提供一个取得其对象实例的方法。
我们可以通过以下方法来做到这一点:
- 必须将类的构造方法的访问权限设置为private,这样就保证了不能够用new操作在类的外部产生对象。
- 在类的内部创建一个对象,同时提供一个静态方法返回内部创建的这个对象。
- 由于静态方法只能访问类中的静态成员变量,所以,类对象的变量也要定义为静态的。
package com.myexample.singleton; /* * 单例模式 * 该类只能够创建一个实例 */ public class testSingleton { public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); //如何来判断S1和S2就是同一个实例呢,可以判断两者的引用是否一致 System.out.println(s1 == s2);//打印true说明引用相同 } } class Singleton{ //1、私有化构造器,使得在类的外部不能够用new创建对象。能够用new就能够创建多个实例。 private Singleton(){ } //2、在类的内部创建一个实例.私有化对象,提供公共的调用方法 private static final Singleton instance = new Singleton(); //3、此公共方法只能够通过类来调用,从而设置为static。静态方法只能够调用静态变量 public static Singleton getInstance() { return instance; } }