首页 > 代码库 > 设计模式-单例模式
设计模式-单例模式
1.设计模式
概述:一套被反复使用的、多数人所知晓的、经过分类别、目的、代码设计经验的总结。
目的:提高代码的重用性,更容易被别人理解,保证代码的可靠性。
2.单例模式:
有些对象只需要一个:配置文件、工具类、线程池 、缓存、日志对象等。
如果出现多个,就会导致许多问题,如占用过多资源、产生不一致的结果。
a) 饿汉模式
i. 将构造方法私有化,不允许外部直接创建对象。
ii. 创建类的唯一实例。(private static)
iii. 封装、提供一个用户获取实例的方法。(pirvate static)。
1 /* 2 * 单例模式Singleton 3 * 应用场合:有些对象只需要一个就足够了,如古代皇帝、老婆 4 * 作用:保证整个应用程序中某个实例有且只有一个 5 * 类型:饿汉模式、懒汉模式 6 */ 7 public class Singleton { 8 //1.将构造方法私有化,不允许外部直接创建对象 9 private Singleton(){ 10 }11 12 //2.创建类的唯一实例,使用private static修饰13 private static Singleton instance = new Singleton();14 15 //3.提供一个用于获取实例的方法,使用public static修饰16 public static Singleton getInstance(){17 return instance;18 }19 }
b) 懒汉模式
i. 将构造方法私有化,不允许外部直接创建对象。
ii. 声明类的唯一实例。(private static)
iii. 封装、提供一个用户获取实例的方法。(pirvate static)。
iv. 特点:用的时候创建。
1 /* 2 * 单例模式Singleton 3 * 应用场合:有些对象只需要一个就足够了,如古代皇帝、老婆 4 * 作用:保证整个应用程序中某个实例有且只有一个 5 * 类型:饿汉模式、懒汉模式 6 */ 7 public class Singleton { 8 //1.将构造方法私有化,不允许外部直接创建对象 9 private Singleton(){ 10 }11 12 //2.创建类的唯一实例,使用private static修饰13 private static Singleton instance = new Singleton();14 15 //3.提供一个用于获取实例的方法,使用public static修饰16 public static Singleton getInstance(){17 return instance;18 }19 }
3.对比:
饿汉模式:加载类时比较慢,但运行时获取对象的速度比较快,线程安全的。
懒汉模式:加载类时比较快,但运行时获取对象的速度比较快,线程不安全的。
设计模式-单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。