面向对象-单线程场景单例设计模式实战案例

              面向对象-单线程场景单例设计模式实战案例

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.单例设计模式介绍

1>.设计模式概述

  就是解决某类问题最行之有效的解决方案,设计模式是一种思想。

  Java里面也有设计模式,目前有23种设计模式,单例设计模式就是其中一种。

2>.单例设计模式

  单例设计模式解决的问题:
    保证一个类在内存种只有一个对象,换句话说,就是保证一个类在内存种的对象唯一性。

3>.单例设计模式应用场景

  比如配置文件,A程序要使用配置文件对象,B程序也要使用配置文件对象,希望A程序对配置文件数据修改后,B程序可以直接使用,那么就需要A程序和B程序使用同一个对象。

4>.如何保证一个类在内存种的对象唯一性呢?

  (1)在本类种自定义一个本类对象
  (
2)对外提供获取该对象的方式即可

5>.代码具体实现

  (1)私有化构造函数;

  (
2)创建一个私有并且静态的本类的对象;
  (
3)创建一个公共的static方法返回该对象;

 

二.通过饿汉式(类加载的时候就创建对象)实现单例设计模式[工作常用]

/**
 *     饿汉式单例模式
 * @author 尹正杰
 *
 */
public class Single {
    //(1)私有化构造函数;
    private Single() {}
    
    //(2)创建一个私有并且静态的本类的对象;
    private static Single s = new Single();
    
    //(3)创建一个公共的static方法返回该对象;
    public static Single getInstance() {
        return s;
    }
}

 

三.通过懒汉式(真正使用的时候才会创建对象)实现单例实际模式[面试常问]

/**
 *     懒汉式单例模式
 * @author 尹正杰
 *
 */
public class Single {
    //(1)私有化构造函数;
    private Single() {}
    
    //(2)创建一个私有并且静态的本类的对象;
    private static Single s = null;
    
    //(3)创建一个公共的static方法返回该对象;
    public static Single getInstance() {
        if (s == null) {
            s = new Single();
        }
        return s;
    }
}

 

posted @ 2020-01-25 06:09  JasonYin2020  阅读(232)  评论(0编辑  收藏  举报