设计模式:单例对象的多种实现
2020-01-11 18:04
148 查看
前言:
单例对象,我们都知道是什么含义,如果问你:你知道多少种单例对象的实现方式呢?这些方式的优缺点有哪些?
解决:
单例模式的前提都是构造方法私有化,不允许别人调用单前类的构造方法,别人也就无法实现对象的生成。
懒汉式实现单例:
在需要使用这个对象时,才会生成生成这个对象。但是这样不是线程安全的,所以可以通过加两重锁实现线程安全。
恶汉式实现单例:
也就是在类加载的过程中生成单例对象。但是这样做就有可能会发生资源浪费的情况,如果生成的对象很大,而且长时间有没有使用,那么这个单例对象就会很占资源。
- 结合两种情况通过内部类的方式来实现单例的生成。JVM中,内部类只有被调用的时候才会被加载,通过在内部类的加载过程中,也就生成了单例对象。不仅是线程安全的,同时也减少了资源被浪费的可能性。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 设计模式C++实现:监视器对象
- [.net 面向对象程序设计深入](31)实战设计模式——使用Ioc模式(控制反转或依赖注入)实现松散耦合设计(1)
- 设计模式是软件的灵魂, 开发语言是多种实现的一种
- C++实现设计模式 - STATE(状态)—对象行为模式(第二十个)
- 设计模式学习笔记之五:单例模式的多种实现及优缺点比较
- 设计模式-实现对象的复用——享元模式
- 设计模式---空对象模式(C++实现)
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- 代理对象我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)
- 基于配置文件的工厂设计模式实现,并且做到对象的单例,类似于spring的ioc
- 模式对象设计模式Java实现(三)Strut2教程-java教程
- (C++)设计模式------单例模式 singleton(简单的实现和对象释放的控制) -- 创建型模式
- 元对象我所理解的设计模式(C++实现)——享元模式(Flyweight Pattern)
- C++设计模式 --单例模式(简单的实现和对象释放的控制)
- C语言的设计模式-面向对象机制的实现(一)
- boost::factory实现对象工厂设计模式
- Java单例设计模式(实现Java的一个类只有一个对象)
- 以boost factory & boost function实现对象工厂设计模式
- 设计模式必须通过面向对象来实现吗?
- 架构设计之设计模式 (四) Java中多种方式实现单例模式