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

    常见的单例模式:

      1.饿汉模式

      2.懒汉模式

    饿汉模式

    步骤:
      1.构造方法私有化.(被private修饰的变量与方法只能在本类使用,因此外界无法通过构造方法直接创建对象,只能通过类名调用该类的public静态成员与方法.)
      2.本类中直接创建一个类的唯一实例,并且是一个私有静态的实例.
      3.创建一个公共的静态方法来返回该实例,外界可以直接通过类名调用该方法获取得到实例对象.
    public class SingleTon{
        //构造方法私有化
        private SingleTon(){
        }
        //创建类的唯一实例,使用private static修饰.
        private static SingleTon instance=new SingleTon();
    
        //创建返回该实例的方法供外界使用,必须是public static修饰.
        public static SingleTon getInstance(){
            return instance;
        }
    }
    因为该唯一的实例是在该类被加载时就会去创建,因此称为饿汉模式.


    懒汉模式

    public class SingleTon{
        //构造方法私有化
      private SingleTon(){
      }
      //声明一个类的引用,使用private static修饰.
      private static SingleTon instance;
    
      //创建返回该实例的方法,使用是public static修饰,方法中判断实例是否已经被实例化过.
      public static SingleTon getInstance(){
        if(instance==null){
            //第一次使用时会实例化该引用.
            instance=new SingleTon();
        }
        return instance;  }
    }
    
    
    私有化构造方法之后,只声明静态私有对象而不实例化,在公有静态方法中判断对象为空时才去实例化一个唯一对象,使用时创建,因此称为懒汉模式
    饿汉模式与懒汉模式区别:
    
    饿汉模式:当类被加载时就会去实例化对象,不管是否使用该对象.饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全,
    懒汉模式:当外部要使用该对象时才会去实例化该对象,即当外部第一次调用该方法时才会去实例化对象,以后再次调用时直接返回该实例后的对象.懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,
     
  • 相关阅读:
    Java分享笔记:关于Java反射机制
    Java分享笔记:自定义枚举类 & 使用enum关键字定义枚举类
    Java分享笔记:RandomAccessFile流 & 在文件指定位置插入内容
    Spark-源码-SparkContext的初始化
    Spark-源码-Spark-StartAll Master Worler启动流程
    Spark-源码-Spark-Submit 任务提交
    Hadoop2学习路程-HDFS
    JavaSE 第二次学习随笔(五)
    JavaSE 第二次学习随笔(四)
    JavaSE 第二次学习随笔(三)
  • 原文地址:https://www.cnblogs.com/sev7en-/p/6039925.html
Copyright © 2011-2022 走看看