`
zjit
  • 浏览: 12683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java单例模式的多种实现~~~

    博客分类:
  • Java
阅读更多
//单例实现(1)
class Singleton1 {
	private static Singleton1 instance;
	private Singleton1(){
	}
	public static Singleton1 getInstance(){
		if(null == instance){
			instance = new Singleton1();
		}
		return instance;
	}
}
/*----------------------------------------------------
 * 以上单态模式是不安全的,为什么这么说呢? 首先没有考虑多线程
 * 例如:
 * Thread1 调用了getInstance()方法,并且判断instance是null
 * 然后进入 if 模块 
------------------------------------------------------*/


//单例实现(2)
class Singleton2{
	private static Singleton2 instance;
	private Singleton2(){}
	public synchronized static Singleton2 getInstance(){
		if(null == instance){
			instance = new Singleton2();
		}
		return instance;
	}
}


//单例实现(3)
class Singleton3{
	private static Singleton3 instance;
	private Singleton3(){}
	public static Singleton3 getInstance(){
		if(null == instance){
			synchronized (Singleton3.class) {
				if(null == instance){
					instance = new Singleton3();
				}
			}
		}
		return instance;
	}
}

//单例实现(4)
class Singleton4{
	private static volatile Singleton4 instance = new Singleton4();
	private Singleton4(){}
	public static Singleton4 getInstance(){
		return instance;
	}
}

//单例实现(5)
class Singleton5{
	static class SingletonHolder{
		static volatile Singleton5 instance = new Singleton5();
	}
	private Singleton5(){}
	public static Singleton5 getInstance(){
		return SingletonHolder.instance;
	}
}
分享到:
评论

相关推荐

    单例模式各种实现及分享

    java单例模式的多种实现方法及优劣区分,以及如何摧毁单例模式。能够让大家认识到单例的多种多样

    详解JAVA单例模式及多种实现.doc

    详解JAVA单例模式及多种实现

    Java实现多种单例模式

    通过Java语言,主要实现了六种单例的生成方法,包括懒汉式、饿汉式、双重校验锁、枚举、静态内部类,可以根据实际情况选择使用

    单例模式的多种实现.docx

    单例模式的七种实现方法以及分析,可以作文大作业提交 1.前言 4 1.1 课题的研究背景 4 1.2 课题主要研究目标 4 2.相关技术简介 4 2.1Java简介 4 2.2IDEA简介 4 3. 单例模式的7种实现方式 5 3.1饿汉式(使用静态常量...

    高并发下多种单例模式实现源码

    单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。一般用于全局接口(比如用于全局信息配置)。他是非常重要的,也最广泛的。同时跟多线程有关...

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...

    Java设计模式 版本2

    Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...

    设计模式课程设计---使用5个以上不同的设计模式完成(java)

    本系统使用Java代码实现,是设计模式的期末课程设计,共使用了5种设计模式,分别是**原型模式、单例模式、抽象工厂模式、代理模式、建造者模式。*,希望对各位有帮助

    设计模式课程设计---使用6个不同的设计模式完成绘图系统(java)

    运用到的设计模式有备忘录模式,迭代器模式,简单工厂模式,状态模式,模版方法模式,单例模式。 资源包含项目文件(eclipse)以及系统说明(docx文件),系统说明中说明了为什么要使用该模式,使用该模式有什么好处...

    Java设计模式整理

    简单工厂模式 工厂方法 抽象工厂模式 单例模式 代理模式等多种设计模式

    java设计模式【之】享元模式【源码】【场景:多缓存可选模式】

    java设计模式【之】享元模式【源码】【场景:多缓存可选模式】 /** * 享元模式(预加载单例) * “元” 理解为 “同一地址对象” * 运用共享技术,减少对象的创建,降低对象的数量,降低内存消耗,提高性能 * ...

    Richie-Diagnostics:使用抽象工厂和单例模式用 Java 编写的程序应用程序

    里奇诊断使用抽象工厂和单例模式用 Java 编写的程序应用程序。 以下存储库包含 Richie 诊断程序和配置文件的源代码。 该程序可以以多种方式运行。 第一种方法是在 java 编译器(例如 Eclipse)中创建一个项目并将...

    Java的23种设计模式

    工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式都是比较常用的,不同的项目有不同的设计方向.....

    设计模式期末作业(要求5个以上的设计模式的模拟系统)

    这是我的设计模式作业:运用5个以上的设计模式创建一个系统。...单例模式 2.原型模式 3.抽象工厂模式+模板方法模式 4.代理模式 5.策略模式 详见博文:http://mp.blog.csdn.net/mdeditor/index/78696300

    design-pattern-java.pdf

    工厂三兄弟之抽象工厂模式(二) 工厂三兄弟之抽象工厂模式(三) 工厂三兄弟之抽象工厂模式(四) 工厂三兄弟之抽象工厂模式(五) 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (一) 确保对象的...

    Java《易学设计模式》随书源码.rar

    书中介绍了多种JAva模式的方法和使用,比如简单工厂模式、工厂方法模式例子、状态模式例子、迭代器模式、解释器模式、命令模式、模板方法模式、享元模式、桥模式、代理模式、适配器模式、单例模式、原型模式、抽象...

    java高级特性,涵盖了多种java常用的一些例子

    涉及多种线程,死锁,同步队列,异步线程,涵盖了java的自定义注解及反射,包含了23种设计模式,含注释, 线程1(基本应用) 线程2(同步,死锁,线程池) 注解和泛型 Java 注解(Annotation)又称 Java 标注,是 ...

    软件设计模式创建型模式实验代码

    ),单例模式(网站计算器是web应用程序的一项基本功能,用于统计使用网站的人数,可反应出网站的受欢迎程序,请设计一个简单的web页面(java,asp.net均可),并为该页面设计一个计算器,用来统计当前访问网址的用户数...

    Kotlin中单例模式和Java的对比浅析

    目前java中的单例模式有多种写法,kotlin中的写法更多一点,下面这篇文章主要给大家介绍了关于Kotlin中单例模式和Java对比的相关资料,会总结全部的到单例模式写法,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics