单例设计模式大多用来做工具类
单例类必须自己创建自己唯一的一个实例,必须给其他对象提供这个实例
控制资源的使用,控制实例的数量,通过媒介数据共享,比如在单例类中定义一个计数器,每调用一次增加一个;
为饿汉模式和懒汉模式
饿汉模式:
- 创建一个工具类,私有化构造器,防止外界新建对象
- 在这个类中创建一个此类的私有静态变量实例
- 创建public静态方法,返回这个实例
好处:使用简单,不用考虑线程问题
缺点:当加载类时会初始化static也会加载到方法区,一直占用空间直到结束,无论是否用到这个实例
public class Until {
private static Until instance = new Until();
public static Until tool(){
return instance;
}
public void run(){
System.out.println("飞起来了");
}
private Until(){
}
}
Until u = Until.tool();
Until s = Until.tool();
System.out.println(u+""+s);//地址自然一样了
u.run();
s.run();//一般用单例设计模式用来创造工具类
懒汉模式:
- 私有构造