我的设计模式学习之路一——单例模式

一、介绍

  定义:
        Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
  作用:
        1、当我们在两个类中需要访问同一个类中的内容时,这时不能实例化,因为实例化以后是两个不同的类,数据不一样,这时就需要用到单例设计模式。
        2、单例模式可以防止用户过多的实例化类,造成过多的内存浪费,因为单例模式,只返回一个实例。

二、实现

1、懒汉式。
/**
 * 懒汉式--用的时候才实例化,当然,我们还需要加入线程锁防止线程安全问题
 * @author BeiKe
 *
 */
public class SingletonClass{
    private static SingletonClass instance=null;
    public static SingletonClass getInstance()
    {
        if(instance==null)
        {
            synchronized(SingletonClass.class)
            {
                if(instance==null)
                    instance=new SingletonClass();
            }
        }
        return instance;
    }
    private SingletonClass(){
    }
}

2、饿汉式

/**
 * 饿汉式-一开始就实例化,用的时候直接返回
 * @author BeiKe
 */
public class SingletonClass{
    private static SingletonClass instance=new SingletonClass();


    public static SingletonClass getInstance()
    {
        return instance;
    }
    /**
     * 构造函数
     */
    private SingletonClass(){}
}

注:相关源码 http://pan.baidu.com/s/1o6MHqJK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值