单例设计模式是面试中经常被问到的,常见的就是让写出一个单例模式的例子出来,通过经验的积累我推荐下面2个代码片段,这两种方法差别不大但是记忆起来特别方便。只需记住下面两点就能写出单例设计模式的例子了
(1)单例模式的类构造方法是私有的
(2)单例模式返回的实例以static关键字修饰
下面来看两个单例模式的例子
1.懒汉模式
package org.lxh;
public class UseSingleton {
private static UseSingleton sin=null;
private UseSingleton(){}
public static synchronized UseSingleton getInstance(){
if(sin==null){
sin=new UseSingleton();
}
return sin;
}
}
2.饥汉模式
这种模式最简单了代码比上面那种方法要少
package org.lxh;
public class UseSingleton {
private static UseSingleton sin = new UseSingleton();
private UseSingleton() {
}
public static UseSingleton getInstance() {
return sin;
}
}