Java的单例模式

单例设计模式就是采用一定的方法保证:

  • 在整个软件系统中,对于某个类只能存在一个对象实例
  • 并且该类只提供一个取得其对象实例的方法

我们可以通过以下方法来做到这一点:

  1. 必须将类的构造方法的访问权限设置为private,这样就保证了不能够用new操作在类的外部产生对象。
  2. 在类的内部创建一个对象,同时提供一个静态方法返回内部创建的这个对象。
  3. 由于静态方法只能访问类中的静态成员变量,所以,类对象的变量也要定义为静态的
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;
	}
}

posted on 2022-02-22 13:02  朴素贝叶斯  阅读(28)  评论(0编辑  收藏  举报

导航