码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-08-31 17:13:34      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:pac   --   nal   pack   简介   div   单例类   color   class   

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;
    }
}

 

 

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

标签:pac   --   nal   pack   简介   div   单例类   color   class   

原文地址:http://www.cnblogs.com/shun-gege/p/7459231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!