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


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

                                 作者:尹正杰

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

     

     

     

    一.单例设计模式介绍

    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;
        }
    }

  • 相关阅读:
    screen:多重视窗管理程序
    tcpdump、nc网络工具使用
    Linux下查看系统版本号信息的方法
    python列表模拟堆栈和队列
    Linux Service and Security
    day2 列表
    Python常用方法
    Nginx1.6.0+MySQL5.6.19+PHP5.5.14(centos)
    LINUX Mysql5.6.19 安装
    python+django+pycharm 环境配置 (window7)
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12232780.html
Copyright © 2020-2023  润新知