程序开发中,有些对象只需要一个,比如 配置文件/ 工具类/ 线程池/ 缓存/ 日志对象等.只需要一个
单例模式: 可以保证某些对象在程序运行中只有唯一的一个实例.
显然单例模式的要点有三个;
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
具体实现角度来说:
一是单例模式的类只提供私有的构造函数,
二是类定义中含有一个该类的静态私有对象,
三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象
单例模式:
应用场合: 有些类的对象只需要一个的情况下就足够
作用: 保证整个应用程序中某个类的实例有且只有一个
类型: 饿汉模式 ; 懒汉模式
单例模式: 饿汉模式
- 将类的构造方法私有化, 使用 private 修饰
- 在类内部"创建"类的唯一实例, 使用 private static 修饰
- 创建一个用于外部获取实例的方法, 使用 public static 修饰
静态的成员属于类,可以直接通过类名来访问.
静态的成员,随着类的加载而同时被创建,供外部访问.
单例模式:懒汉模式
- 将类的构造方法私有化, 使用 private 修饰
- 在类内部"声明"类的唯一实例, 使用 private static 修饰, 此时的实例并没有被实例化
- 创建一个用于外部获取实例的方法, 使用 public static 修饰
饿汉模式---将类的实例进行了实例化,
懒汉模式---没有将类的实例进行实例化
饿汉模式---加载时比较慢,但运行时获取对象的速度比较快, 线程安全的
懒汉模式---加载时比较快,但运行时获取对象的速度比较慢, 线程不安全的
========================单例模式(完)========================