二:目的,使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。
有些对象我们只需要一个,比如:配置文件,工具类,线程池,缓存,日志对象等。如果创造出多个实例,就会导致很多问题,比如占用过多资源,不一致的结果等。可以通过 单例模式,保证整个应用中某个实例有且只有一个。
三:单例模式中的饿汉模式
/**
* 单例模式SingleTon
* 应用场合:有些对象只需要一个就够了,如古代的皇帝,,
* 作用:保证整个应用程序中某个实例有且只有一个
* 类型:饿汉模式,懒汉模式
*/
public class SingleTon {
//1.将构造方法私有化,不允许外部直接创建对象
private SingleTon(){
}
//2.创建类的唯一实例,使用private static 修饰
private static SingleTon instance = new SingleTon();
//3.提供一个用于获取实例的方法,使用public static 修饰
public static SingleTon getInstance(){
return instance;
}
}
懒汉模式:
/**
* 区别:
* 饿汉模式的特点是加载类时的速度比较慢,但是运行时获取对象的速度比较快,线程安全
* 懒汉模式的特点是加载类时的速度比较快,但是运行时获取对象的速度比较慢,线程不安全
*/
public class SingleTon 2{
//1.将构造方法私有化,不允许外部直接创建对象
private SingleTon2(){
}
//2.声明类的唯一实例,使用private static 修饰
private static SingleTon2 instance;
//3.提供一个用于获取实例的方法,使用public static 修饰
public static SingleTon2 getInstance(){
if (instance==null) {
instance = new SingleTon2();
}
return instance;
}
}