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

Singelton单例模式

时间:2016-02-27 00:48:23      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:

单例,相当于一个全局变量,在整个应用程序中保证只有一个类的实例存在。

  

线程池、数据库连接池、缓存、日志等对象常被设计成单例

 

实例:

1.懒汉式单例

/**
 * 懒汉式单例Singelton:是一种创建性模式,在运行期调用对外开发的方法getInstance时创建单例对象
 *         确保每次只创建一个实例,并提供一个全局访问点
 *         
 * 缺陷:不满足线程安全的要求,在并发环境下很可能出现多个Singleton实例(不推荐使用)
 * @author 魅力_小生
 */
public class SingeltonTest01 {
    
    /**
     * 私有的静态属性(自身)
     */
    private static SingeltonTest01 instance;
    
    /**
     * 私有构造,防止外部实例化
     * 
     * 但是:通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效
     */
    private SingeltonTest01(){
        
    }
    
    /**
     * 单例获取方法
     * 外部只能通过该方法获取类的实例
     * @return instance实例对象
     */
    public static SingeltonTest01 getInstance(){
        if(instance == null){
            instance = new SingeltonTest01();
        }
        return instance;
    }
}

2.饿汉式单例

/**
 * 饿汉式单例
 * 
 * 饿汉式单例类.在编译期类初始化时,已经自行实例化,从始至终只有一个对象
 * 线程安全,推荐使用
 * @author 魅力_小生
 */
public class SingeltonTest02 {
    
    /**
     * 创建私有静态的实例
     */
    private static SingeltonTest02 instance = new SingeltonTest02();
    
    /**
     * 私有构造,防止外部实例化
     */
    private SingeltonTest02(){
        
    }
    
    /**
     * 静态工厂方法,返回实例
     * @return
     */
    public static SingeltonTest02 getInstance(){
        return instance;
    }
}

 

Singelton单例模式

标签:

原文地址:http://www.cnblogs.com/yzlpersonal/p/5222112.html

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