最近狂补java基础的我重新学习了下单例,下面直接贴出代码,以作备忘
1 package com.darling.single; 2 3 /** 4 * 单例模式 5 * 单例即在内存中只存在该类的一个实例,要想实现这个需求首先得满足以下三点: 6 * 1、不让调用者new对象(否则会产生多个实例) 7 * 2、自己new对象 8 * 3、暴露获取自身对象的方法 9 * @author Administrator 10 * 11 */ 12 public class SingleDemo { 13 /** 14 * 1、不让调用者new对象可以通过私有化构造函数来实现 15 */ 16 private SingleDemo(){} 17 18 /** 19 * 2、自己new对象(自己创建自己的实例) 饿汉模式 20 */ 21 private static SingleDemo s = new SingleDemo(); 22 23 /** 24 * 3、暴露获取自身实例的方法(饿汉模式) 25 */ 26 public static SingleDemo getInstance() { 27 return s; 28 } 29 30 /** 31 * 2、自己new对象(自己创建自己的实例) 懒汉模式 32 */ 33 private static SingleDemo sLazy = null; 34 35 /** 36 * 3、暴露获取自身实例的方法(懒汉模式) 37 */ 38 public static SingleDemo getLazyInstance() { 39 if(sLazy == null) { 40 sLazy = new SingleDemo(); 41 } 42 return sLazy; 43 } 44 }