hoge66的专栏

-----------------------看到专栏,偷着笑!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java 基础(单例)

Posted on 2017-01-22 14:30  hehoge  阅读(140)  评论(0编辑  收藏  举报

1、如果一个类,始终只能创建一个实例,那么这个类就叫做单例类。

我们把该类的构造器使用private修饰,从而把该类的所有构造器隐藏起来。

根据良好的封装原则,一旦把该类的构造器隐藏起来,就需要提供一个public方法作为该类的访问点,用于创建该类的对象,且该方法必须用static修饰(调用该方法的只能是类)。

     还有,该类还必须缓存自己创建的对象,否则该类不会知道是否已经创建了该对象,也就无法保证只创建一个对象,因此需要创建一个属性来保存曾经创建的对象。该属性需要

被上面的static访问,所以也要用static修饰。

/*
 * 单例类
 * */
public class SingleSton {

	// 保存已创建对象的属性
	private static SingleSton singleSton;
	// 使用private修饰构造方法
	private SingleSton(){};
	// public方法,用于返回唯一的对象
	public static SingleSton getInstance() {
		if (singleSton==null) {
			// 创建一个对象,并将其缓存起来
			singleSton=new SingleSton();
		}
		return singleSton;
	}
}

public class SingleStonTest {

	public static void main(String[] args) {
		SingleSton s1=SingleSton.getInstance();
		SingleSton s2=SingleSton.getInstance();
		System.out.println(s1==s2);
	}
}