zoukankan      html  css  js  c++  java
  • 设计模式 单例模式

    //第一种实现方法:类的对象只有一个  懒汉

    public class Singlton1 {
      private static Singlton1 instance;
      //让其外部不能再new 对象
      private Singlton1(){};
      //给外部提供一个方法;得到该类的对象
      public static Singlton1 getInstance(){
        if(instance==null){
          instance = new Singlton1();
        }
        return instance;
      }
    }

    //第二种实现方法:类的对象只有一个  饿汉

    public class Singleton2 {
      private static final Singleton2 instance = new Singleton2();
      private Singleton2(){};
      public static Singleton2 getIntance(){
        return instance;
      }
    }

    //第三种实现方法

    public class Singleton3 {
      private Singleton3(){};
      //静态内部类
      static class InnerSinglton3{
        private static final Singleton3 instance = new Singleton3();
      }
      public static Singleton3 getInstance(){
        return InnerSinglton3.instance;
      }
    }

    //第四种实现方法

    public class Singleton4 {
      private static Singleton4 instance;
      private Singleton4(){};
      public static Singleton4 getInstance(){
        if(instance==null){ //如果不是null,锁都不用锁
          synchronized (Singleton4.class) { //锁模板对象
            if(instance==null){ //加锁的过程中不能确保对象是否已创建,安全起见,再判断一次
              instance = new Singleton4();
            }
          }
        }
        return instance;
      }
    }

  • 相关阅读:
    文章块引用模版
    悬停工具提示
    各个知识点
    Github Fork 缎带.html
    css重置样式
    暗灰色的圆形按钮.html
    css中的居中的方法
    display:table的几个用法 块级子元素垂直居中
    <meta>标签中http-equiv属性的属性值X-UA-Compatible详解
    jQuery难学是因为什么?
  • 原文地址:https://www.cnblogs.com/hwgok/p/5352423.html
Copyright © 2011-2022 走看看