• 设计模式--单例设计模式


    设计模式是对问题行之有效的解决方案,它其实是一种思想。

    单例设计模式:

      解决的问题:可以保证一个类在内存中只能有一个对象。(比如多个程序使用相同的配置信息对象时,就需要保证对象的唯一性)

      如何保证唯一性:1、不允许其他程序用new创建类对象

              2、在该类中创建一个本类实例

              3、对外提供一个方法让其他程序可以获取该对象

        达成唯一性的步骤:

              1、私有化该类构造函数(private)

              2、通过new在本类中创建一个本类对象

               3、定义一个公有的方法,将创建的对象返回

    class Single
      {
        static Single s = new Single();
        private Single(){}
        public static Single getInstance()
        {
        return s;
        }
      }
    //调用对象的方式采用类名调用,类名调用的前提是调用静态方法,静态访问的内容必须是静态故static Single用静态修饰
    class SingleDemo
      {
        Single ss1 = Single.getInstance();
        Single ss2= Single.getInstance();
        System.out.println(ss1==ss2);
      }
    //输出结果为true也就说明对象唯一

    这种方式在类一 加载就会产生对象。也称作恶汉式单例模式。

    对应的懒汉式如下:

    懒汉式即类加载进来时,没有对象,只有调用geyInstance方式时,才会创建对象。(延迟加载形式)

    class Single2
      {
        static Single2 s = null;
     private Single2(){}
     public static Single2 getInstance()
     {

      if ( s == null )

        s = new Single2 ();

       return s;
     }
      }

    真实开发时饿汉式使用较多,因为懒汉式在用的时候如果碰见多线程问题有可能出现 对象的唯一性问题存在安全隐患。(面试时饿汉式碰见的多)

  • 相关阅读:
    WebService如何抛出干净的异常
    添加引用方式抛出和捕获干净的WebService异常
    Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据
    API & HTTP 请求调试:Postman
    .NET Transactional File Manager
    IIS发布站点错误收集
    zk删除node模式
    zk watch机制及创建node机制
    zk client获取数据
    Zookeeper CLI
  • 原文地址:https://www.cnblogs.com/beulas/p/beulas.html
Copyright © 2020-2023  润新知