`
backbase
  • 浏览: 89059 次
  • 性别: Icon_minigender_1
  • 来自: 虾汤水库
社区版块
存档分类
最新评论

单例模式的回顾

    博客分类:
  • base
阅读更多
   实现单例模式的写法有很多种,下面列出单例的几种常用的写法,在写单例的代码前,回

顾下几个方面内容。

1:单例的作用:保证应用程序中,一个(class)类只有一个实例对象。

2:单例的条件:
  •         构造函数是私有的
  •         有一个private static 该类型的实例变量
  •         通过一个public static 的getInstance的方法,获取它的引用。继而调用其中的方法



方式一:
public class Singleton {

        //构造函数声明为private 表示只供内部调用 
	private Singleton(){};
	
	private static Singleton instance = new Singleton();
	
	public static Singleton getInstance(){
		return instance;
	}
	
}


方式二:

public class Singleton {

	private Singleton(){};
	
	private static Singleton instance = null;
	
	public synchronized static Singleton getInstance(){
		if (null == instance) {
			return new Singleton();
		}
		return instance;
	}
}


上面那种形式要更加安全些呢? 大多数的朋友认为第二种形式要更加安全些



分享到:
评论

相关推荐

    单例模式代码

    最近空闲的时候回顾了一下常用的设计模式,其中单例模式是创建型模式中比较基础的一种设计模式,说起单例模式,想必大家并不模式,我们都知道的是,在单例模式下,能够保证一个类只有一个实例对象,就是说,外部访问...

    11-回顾和总结(1).html

    单例模式( Singleton ) 建造者模式( Builder ) 原型模式( Prototype ) 结构型模式包含了: 适配器模式( Adapter ) 装饰器模式( Decorator ) 代理模式( Proxy ) 外观模式( Facade ) 桥接模式( Bridge...

    74丨总结回顾23种经典设计模式的原理、背后的思想、应用场景等1

    1. 单例模式 2. 工厂模式 3. 建造者模式 4. 原型模式 1. 代理模式 2. 桥接模式 3. 装饰器模式 4. 适配器模式 5. 门面模式 6. 组合

    JS 设计模式之:工厂模式定义与实现方法浅析

    上次我们介绍了单例模式,没看过的小伙伴可以看这个链接: 浅析 JS 设计模式之:单例模式 今天来说一说一种常见的设计模式:工厂模式。 工厂模式是一种创建对象的 创建型模式,遵循 DRY(Don’t Repeat Yourself)...

    稳稳当当学java之设计模式(12).md

    本人的笔记,关于java基础中设计模式的内容 包括 1.作业回顾 2.内部类 2.1局部内部类 2.2静态内部类 2.3匿名内部类 3.设计模式 3.1单例模式 3.2代理模式 3.3观察者模式 3.4模板模式 4.练习

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    C中实现单例模式7.4 子类化Singleton7.5 线程安全7.6 在Cocoa Touch框架中使用单例模式7.6.1 使用UIApplication类7.6.2 使用UIAccelerometer类7.6.3 使用NSFileManager类7.7 总结第三部分 接口适配第8章 适配器8.1 ...

    单例模式简介

    知识回顾 修饰符:  权限修饰符:public、 protected、默认不写、private   public:共有的、当前工程的任意位置都能访问到  protected: 保护的 本类、同包、子类  默认不写:默认的、本类、同包  private:...

    sunstom-qmover-master.zip

    QMover 1、主要功能是在Windows下复制一些东西,只有一个复制的功能 2、主要目的是练习Qt相关知识 ...回顾了单例模式 b.使用了QMenu c.使用了QTimer d.使用了QSystemTrayIcon e.使用了QHash f.使用了文件读写操作

    【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识.rar

    设计模式(工厂模式、单例模式 ... ) 常用框架(Spring、Zookeeper ... ) 数据通信(消息队列、Dubbo ... ) 网站架构 面试指南 备战面试 常见面试题总结 面经 工具 Git Docker 资源 书单 Github榜单 Java基础 Java ...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    curso-profesional-[removed]course-fundamentals-javascript Platzi JavaScript基础的所有课程JavaScript的第一步

    设计模式:什么是设计模式,设计模式的类别,单例模式,观察者模式,装饰器模式。 课程项目 创建插件以扩展视频播放器的功能,了解DOM的工作原理。 创建可为视频播放器提供更多功能的插件。 根据项目的需要在对象中...

    java进阶13天资料.zip

    day01-复习回顾、静态、继承、引用类型使用 day02-抽象类、接口、代码块,final、单例、枚举 day03-多态、包、权限修饰符、内部类,Object类,Date类 day04-常用API、正则表达式,泛型、Collection集合API day05-...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    XSS过滤以及单例模式 博客系统表结构讲解 博客系统功能讲解 CMDB介绍 CMDB实现的三种方式 CMDB Agent客户端示例 第26周 今日内容概要以及CMDB介绍 前端插件定制之表头 前端插件定制之表内容 第27周 前端插件定制...

    JavaScript高级程序设计(第四版)中文版.pdf文件 下载就能看,还有很多书的电子版,上传的没上传的,可以找我要

    1.1 简短的历史回顾 1 1.2 JavaScript实现 2 1.3 JavaScript版本 9 1.4 小结 10 第 2章 HTML中的JavaScript 11 2.1 script元素 11 2.2 行内代码与外部文件 18 2.3 文档模式 18 2.4 noscript元素 19 2.5 小...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-...

    史上最全传智播客PHP就业班视频课,8月份视频

    9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-...

    (全)传智播客PHP就业班视频完整课程

    9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    9-21 2.mvc模式①-用mvc模式改进网站结构 9-21 3.mvc模式②-用mvc模式改进网站结构 9-21 4.cookie①-cookie原理介绍 创建cookie 获取cookie 9-21 5.cookie②-更新cookie 删除cookie cookie运用案例 9-21 6.cookie③-...

    C++开发基于Qt实现的网盘系统源码+项目说明.zip

    设计特性:单例设计模式、网络通信 开发时间表 项目开始于2023年8月,计划在两个星期左右完成,大概开发时间表规划如下: 08月12日 【初始化】项目初始化、搭建数据库 08月13日 【初始化】客户端/服务器初始...

Global site tag (gtag.js) - Google Analytics