设计模式——单例模式
设计模式(Design Pattern)
是一套被反复使用、多数人知晓的、经过分类编目、代码设计经验的总结。
目的
让代码更容易被他人理解、保证代码可靠性。
单例模式:
应用场合:有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。如果创造出多个实例,就会导致很多问题,比如占用资源过多,不一致的结果等等。
作用:保证整个应用程序中某个实例有且只有一个
类型:饿汉模式、懒汉模式
- 饿汉模式
Public class Sington {
// 1.将构造方法私有化,不允许外部直接创建对象
private Sington() {}
// 2. 创建类的唯一实例 用 private static 修饰
private static Sington instance = new Sington() ;
//3. 提供一个用于获取实例的方法
public static Singleton getInstance(){
return instance;
}
}
- 懒汉模式 ——相比于饿汉模式,懒汉模式开始只是先声明实例,并没有被初始化,其次在提供获取实例的方法中判断实例是否为空,空则创建,非空则直接返回。
Public class Sington {
// 1.将构造方法私有化,不允许外部直接创建对象
private Sington() {}
// 2. 创建类的唯一实例
private static Sington instance ;
//3. 提供一个用于获取实例的方法
public static Singleton getInstance(){
if(instance == null){
instance = new Sington();
}
return instance;
}
}
区别:
饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快。 线程安全
懒汉模式的特点是加载类时比较快,单运行时获取对象的速度比较慢。线程不安全
本文来自博客园,作者:邓晓晖,转载请注明原文链接:https://www.cnblogs.com/isdxh/p/8484069.html

浙公网安备 33010602011771号