从零双排学java之单例设计模式

单例设计模式

核心思想:在程序运行的过程当中,该类的对象保持有且只有一个的状态

单例分两种:懒汉式和饿汉式

单例需要满足的条件

1.不让外界创建这个对象即(构造方法需要私有化)

2.在类的内部来创建这个对象即(让这个对象只创建一次)

3.需要给外部提供一个访问可以获得该对象的方法即(提供一个get方法)

懒汉式代码:

/懒汉式(不完整 线程安全问题  双锁控制)   在类被加载的时候 不会去创建对象  只有当你
//调用了获取该类的方法时  才会创建该类对象
class SingleL{
	//声明一个对象的引用
	private static SingleL singleL=null;
	//构造方法私有化
	private SingleL() {
		
	}
	//获取对象的方法
	public  static SingleL getInstance() {
		//判断  当这个对象不存在的时候在创建
		if(singleL==null) {
			singleL=new SingleL();
		}
		 
		return singleL;
	}

饿汉式代码:

//饿汉式(只要该类 被加载 就会在方法区的 静态区中 创建本类对象)
class SingleE{
	//声明一个本类的对象
	private static SingleE singleE=new SingleE();
	//构造方法私有化
	private SingleE() {
		
	}
	//对外提供一个访问的方法
	public static SingleE getInstance() {
		return singleE;
	}
}

实现的结果:打印了两次,为了测试单例是否只能被创建一个对象

//打印获取单例对象		  两者打印的内容是一样的,说明两个是同一个对象
		System.out.println(SingleE.getInstance());
		System.out.println(SingleE.getInstance());
		System.out.println("-------------------");
		//打印懒汉模式对象
		System.out.println(SingleL.getInstance());
		System.out.println(SingleL.getInstance());

猜你喜欢

转载自blog.csdn.net/jsymax/article/details/80328356