• 设计模式の单例模式


    常见的单例模式:

      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;  }
    }
    
    
    私有化构造方法之后,只声明静态私有对象而不实例化,在公有静态方法中判断对象为空时才去实例化一个唯一对象,使用时创建,因此称为懒汉模式
    饿汉模式与懒汉模式区别:
    
    饿汉模式:当类被加载时就会去实例化对象,不管是否使用该对象.饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全,
    懒汉模式:当外部要使用该对象时才会去实例化该对象,即当外部第一次调用该方法时才会去实例化对象,以后再次调用时直接返回该实例后的对象.懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,
     
  • 相关阅读:
    CentOS 7 网卡命名修改为eth0格式
    Sublime Text3下的markdown插件的安装及配置
    json-lib 之jsonConfig详细使用(转载写的不错)
    IDEA快捷键【收藏】
    阿里云安装nginx 和 php-fpm
    sed 神器
    非root模式下安装mysql php小记
    一个不错的vim配置
    sublime安装sftp和ctags插件
    取得某个数组前key大 PHP实现
  • 原文地址:https://www.cnblogs.com/sev7en-/p/6039925.html
Copyright © 2020-2023  润新知