Java中的单例模式
设计模式是软件开发过程中经验的积累
一、单例模式
1、单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
2、单例模式的三个要点(面试常问):
某个类只能有一个实例,不能new对象
必须自行创建这个实例
必须自行向整个系统提供这个实例(创建一个公开方法,返回这个对象)
代码演示之懒汉式:
/*
* 单例模式(懒汉式):
* 1、保证外部不能new对象
* 2、类内部自己创建对象
* 3、创建一个公开方法,返回这个对象
* 这是简单的写法,在我们学了多线程之后,这个懒汉式写法会有些不同的地方
*/
public class SingleTon {
private SingleTon() {
}
private static SingleTon instance;
public static SingleTon getInstance(){
if(instance==null){
instance=new SingleTon();
}
return instance;
} }
/*
*测试类
*/
public class Test {
public static void main(String[] args) {
SingleTon n=SingleTon.getInstance();
SingleTon n2=SingleTon.getInstance(); System.out.println(n.toString());
System.out.println(n2.toString());
} }
运行截图:
代码演示之饿汉式:
/*
* 饿汉式
*/
public class SingleTon {
private SingleTon() {
}
private static final SingleTon instance=new SingleTon();
public static SingleTon getInstance(){
return instance;
}
}
/*
* 测试类
*/
public class Test {
public static void main(String[] args) {
SingleTon n=SingleTon.getInstance();
SingleTon n2=SingleTon.getInstance(); System.out.println(n.toString());
System.out.println(n2.toString());
}
}
运行截图: