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;  }
    }
    
    
    私有化构造方法之后,只声明静态私有对象而不实例化,在公有静态方法中判断对象为空时才去实例化一个唯一对象,使用时创建,因此称为懒汉模式
    饿汉模式与懒汉模式区别:
    
    饿汉模式:当类被加载时就会去实例化对象,不管是否使用该对象.饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全,
    懒汉模式:当外部要使用该对象时才会去实例化该对象,即当外部第一次调用该方法时才会去实例化对象,以后再次调用时直接返回该实例后的对象.懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全,
     
  • 相关阅读:
    接口详解
    可空类型
    初学泛型
    结构和类
    触发器
    学习C#异常处理机制
    静飘移
    《Hashtable(散列表)》 集合
    自定义集合类
    Automation伺服程式無法産生物件
  • 原文地址:https://www.cnblogs.com/sev7en-/p/6039925.html
Copyright © 2011-2022 走看看