• 设计模式(四)---单例模式


    1、简介

      作为对象的创建模式,单例模式确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例,这个类称为单例类

    2、单例模式有以下三个特点

      2.1、单例类只能有一个实例

      2.2、单例类必须自己创建自己的唯一实例

      2.3、单例类必须向其它对象提供这一实例

    3.饿汉式单例模式

    package Singleton;
    /**
     * ********************************************************  
    * @ClassName: EagerSingleton 
    * @Description: 饿汉式单例模式 
    *  
    **********************************************************
     */
    public class EagerSingleton {
        private static final EagerSingleton m_instance = new EagerSingleton();
        
        //私有构造器
        private EagerSingleton(){}
        
        public static EagerSingleton getInstance(){
            return m_instance;
        }
    }

      可以看出,当这个类被加载时,m_instance 会被初始化。此时类的私有构造器会被调用,这样单例类的唯一实例就被创建了

      单例类的一大特点是类的构造器是私有的,从而避免了外界利用构造器直接创建出其它的实例,并且,由于构造器是私有,此类不能被继承

    4、懒汉式单例模式

    package Singleton;
    /**
     * ********************************************************  
    * @ClassName: LazySingleton 
    * @Description: 懒汉式单例模式
    *  
    **********************************************************
     */
    public class LazySingleton {
        private static LazySingleton m_instance = null;
        
        //私有构造器  保证外界无法直接实例化
        private LazySingleton(){}
        
         public synchronized static LazySingleton getInstance(){
            if(null == m_instance){
                m_instance= new LazySingleton();
            }
             return m_instance;
        }
    }

     

  • 相关阅读:
    用.net开发wap
    MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
    收藏一下这个微软MVP的老外博客
    第三篇:Django的路由系统
    第二篇:Django自定义登录功能
    第一篇:Django简介
    json和pickle序列化模块
    oracle 11gr2 rac修改VIP
    修改监听端口号
    删除磁盘组
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7459231.html
Copyright © 2020-2023  润新知