设计模式 -- 单例模式

设计模式就是解决某一种问题的一种思想,是一种行之有效的解决方式

下面要记录的就是设计模式中的单例模式。

解决的问题

任何一种设计模式的出现,都是为了解决某一种问题的。单例设计模式也不例外,它的出现是为了保证一个类的对象在内存中的唯一性

应用场景

系统/应用只需要一个实例对象,确保对象的唯一性。

用例学习

单例模式最典型的应用场景就是多个对象都要对同一对象的某一个实例进行调用。通常,创建这个对象的类就要被设计成单例类。

代码如下:

/**
 * @author myvina@qq.com
 * @date 18-5-7  上午11:08
 */

public class Singal {
    private static Singal singal = new Singal();

    private Singal() {
    }

    public static Singal getInstance() {
        return singal;
    }
}

以上就是饿汉式单例模式。单例模式还有另外一种懒汉式单例模式(也可称之为延迟加载方式)。

代码如下:

/**
 * @author myvina@qq.com
 * @date 18-5-7  上午11:08
 */

public class Singal {
    private static Singal singal = null;

    private Singal() {
    }

    public static Singal getInstance() {
        if(singal == null) {
            synchronized (Singal.class) {
                if(singal != null)
                    singal = new Singal();
            }
        }
        return singal;
    }
}

这种方式在对多线程访问的时候,可以通过线程锁来避免创建多个实例。本例使用的是Singal类所属的字节码对象锁,当然也还乐意使用其他锁!都能达到线程同步的要求。


以上就是对单例模式的简单记录!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值