zoukankan      html  css  js  c++  java
  • 7.02_单例模式(懒汉模式,恶汉模式)

    一、什么是单例模式

      * 单例设计模式:保证类在内存中只有一个对象。

        * 如何保证类在内存中只有一个对象呢?
        * (1)控制类的创建,不让其他类来创建本类的对象。private
        * (2)在本类中定义一个本类的对象。Singleton s;
        * (3)提供公共的访问方式。 public static Singleton getInstance(){return s}
    二、 单例写法两种:
         (1)饿汉式 开发用这种方式。

            //饿汉式
            class Singleton {
            //1,私有构造函数
              private Singleton(){}
            //2,创建本类对象
            private static Singleton s = new Singleton();
            //3,对外提供公共的访问方法
          public static Singleton getInstance() {
            return s;
            }

          public static void print() {
            System.out.println("11111111111");
            }
          }
          (2)懒汉式 面试写这种方式。多线程的问题?

          //懒汉式,单例的延迟加载模式
          class Singleton {
           //1,私有构造函数
          private Singleton(){}
          //2,声明一个本类的引用
          private static Singleton s;
          //3,对外提供公共的访问方法
          public static Singleton getInstance() {
            if(s == null)
          //线程1,线程2
            s = new Singleton();
            return s;
          }

          public static void print() {
            System.out.println("11111111111");
          }
      }
       (3)第三种格式
        class Singleton {
          private Singleton() {}

           public static final Singleton s = new Singleton();//final是最终的意思,被final修饰的变量不可以被更改

          }

  • 相关阅读:
    Codeforces Gym
    洛谷试炼场一句话题解
    优先队列板子
    BZOJ 3524 [POI2014] Couriers/洛谷3567(可持久化线段树)
    hdu 4417 Super Mario(可持久化线段树)
    poj 2559 Largest Rectangle in a Histogram (单调栈)
    zoj 4019 Schrödinger's Knapsack
    hdu 1521 排列组合(指数型生成函数板子)
    hdu 2072 单词数(普通型生成函数板子)
    RabbitMQ广播:direct模式
  • 原文地址:https://www.cnblogs.com/zyyzy/p/12422175.html
Copyright © 2011-2022 走看看