单例设计模式很简单,目的只有一个:类只能创建出一个对象实例,并且让调用者不能创建对象实例,所以该类的构造方法必须为private,该类在内部自己创建出自己的对象,并且提供一个public方法,供调用者调用该类的对象实例.
饿汉式:
1 class Single 2 { 3 private static final Single s = new Single(); 4 private Single(); 5 public static Single getInstance() 6 { 7 return s; 8 } 9 }
懒汉式:
又称延迟加载,因为在多线程下容易出现线程安全问题,可用"同步锁"解决
1 class Single 2 { 3 private static Single s = null; 4 private Single(){} 5 6 public static single getInstance() 7 { 8 if(s == null) 9 { 10 synchronized(Single.class) 11 { 12 if(s == null) 13 { 14 s = new Single(); 15 } 16 } 17 } 18 return s; 19 } 20 }
浙公网安备 33010602011771号