设计模式——单例设计模式
JavaSE进阶——该篇主要讲解Java中的单例设计模式
sum: 保证类中对象的唯一性
单例模式及作用
- 正常情况下一个类可以创建多个对象
1 | public static void main(String[] args) { |
- 如果说有时一个对象就能搞定的事情 , 非要创建多个对象 , 浪费内存!!!
单例设计模式的作用
单例模式,是一种常用的软件设计模式。通过单例模式可以保证项目中,应用该模式的这个类只有一个实例。
即一个类只有一个对象实例。
好处 :可以节省内存,共享数据
单例设计模式实现步骤
- 将构造方法私有化。(保证外部不能够通过new关键字实例化该类对象)
- 在该类内部产生一个唯一的实例化对象,并且将其封装为private static 类型的成员变量(本类中可实例化)。(保证外部可获取该类实例对象)
- 定义一个静态方法返回这个唯一对象。
单例设计模式的类型
根据创建对象的时机单例设计模式又分为以下两种:
饿汉单例设计模式:随着类的加载就把该唯一对象创建完成
懒汉单例设计模式:当需要使用该实例时候,才会创建
饿汉单例设计模式
1 | package modul.single; |
懒汉式单例设计模式
1 | package modul.single.demo2; |
问题???
对于多线程访问时候可能出现一定的问题。
解决
加上线程同步即刻。
例如在实例化的方法加上synchronized
构成同步方法。
1 | //实现方法,返回该类的实例, 保证外部可以访问实例对象 |