什么是单例模式
单例模式,自己负责创建自己的对象这个类提供了,一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。通俗的讲就是保证在整个应用程序的生命周期中只会被创建一次。
为什么需要使用单例模式
1.避免对象被不断的创建,消耗不必要的系统资源。
2.如果不使用单例,可能在某些程序运行的时候将会出现错误。下面举一个例子,证明如果不使用单例会使什么样子的。
定义一个ShareResources(共享资源)类
//共享资源
public class ShareResources {
private String name = "SmileJosiah";
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
//测试类
public class Demo {
public static void main(String[] args) {
ShareResources shareResources = new ShareResources();
shareResources.setName("Bob");
ShareResources shareResources1 = new ShareResources();
shareResources1.setName("Jack");
//.... 但是这样改变了以后 这个共享的ShareResources中的name真的就是“Jack”吗?,答案显然不是
//不管是修改为“Bob”还是“Jack”都是在对某一个具体的实例对象中的name进行了修改而已
ShareResources shareResources2 = new ShareResources();
System.out.println(shareResources2.getName());
}
}
如何实现单例模式(七种方法)
- 饿汉式(线程安全,可以使用)
//饿汉式
public class HungarySin