//单例实现(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单例模式及多种实现
通过Java语言,主要实现了六种单例的生成方法,包括懒汉式、饿汉式、双重校验锁、枚举、静态内部类,可以根据实际情况选择使用
单例模式的七种实现方法以及分析,可以作文大作业提交 1.前言 4 1.1 课题的研究背景 4 1.2 课题主要研究目标 4 2.相关技术简介 4 2.1Java简介 4 2.2IDEA简介 4 3. 单例模式的7种实现方式 5 3.1饿汉式(使用静态常量...
单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。一般用于全局接口(比如用于全局信息配置)。他是非常重要的,也最广泛的。同时跟多线程有关...
本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...
文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...
Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一...
本系统使用Java代码实现,是设计模式的期末课程设计,共使用了5种设计模式,分别是**原型模式、单例模式、抽象工厂模式、代理模式、建造者模式。*,希望对各位有帮助
运用到的设计模式有备忘录模式,迭代器模式,简单工厂模式,状态模式,模版方法模式,单例模式。 资源包含项目文件(eclipse)以及系统说明(docx文件),系统说明中说明了为什么要使用该模式,使用该模式有什么好处...
简单工厂模式 工厂方法 抽象工厂模式 单例模式 代理模式等多种设计模式
java设计模式【之】享元模式【源码】【场景:多缓存可选模式】 /** * 享元模式(预加载单例) * “元” 理解为 “同一地址对象” * 运用共享技术,减少对象的创建,降低对象的数量,降低内存消耗,提高性能 * ...
里奇诊断使用抽象工厂和单例模式用 Java 编写的程序应用程序。 以下存储库包含 Richie 诊断程序和配置文件的源代码。 该程序可以以多种方式运行。 第一种方法是在 java 编译器(例如 Eclipse)中创建一个项目并将...
工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式都是比较常用的,不同的项目有不同的设计方向.....
这是我的设计模式作业:运用5个以上的设计模式创建一个系统。...单例模式 2.原型模式 3.抽象工厂模式+模板方法模式 4.代理模式 5.策略模式 详见博文:http://mp.blog.csdn.net/mdeditor/index/78696300
工厂三兄弟之抽象工厂模式(二) 工厂三兄弟之抽象工厂模式(三) 工厂三兄弟之抽象工厂模式(四) 工厂三兄弟之抽象工厂模式(五) 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (一) 确保对象的...
书中介绍了多种JAva模式的方法和使用,比如简单工厂模式、工厂方法模式例子、状态模式例子、迭代器模式、解释器模式、命令模式、模板方法模式、享元模式、桥模式、代理模式、适配器模式、单例模式、原型模式、抽象...
涉及多种线程,死锁,同步队列,异步线程,涵盖了java的自定义注解及反射,包含了23种设计模式,含注释, 线程1(基本应用) 线程2(同步,死锁,线程池) 注解和泛型 Java 注解(Annotation)又称 Java 标注,是 ...
),单例模式(网站计算器是web应用程序的一项基本功能,用于统计使用网站的人数,可反应出网站的受欢迎程序,请设计一个简单的web页面(java,asp.net均可),并为该页面设计一个计算器,用来统计当前访问网址的用户数...
目前java中的单例模式有多种写法,kotlin中的写法更多一点,下面这篇文章主要给大家介绍了关于Kotlin中单例模式和Java对比的相关资料,会总结全部的到单例模式写法,需要的朋友可以参考下