《设计模式》一书对Singleton模式是这样描述的:
保证一个类只有一个实例,并提供一个访问它的全局访问点。
这个模式比较简单,下面给出一个例子:
public class Singleton {
private static Singleton instance;
private Singleton(){
}
public static Singleton getInstance(){
if(instance==null)
instance=new Singleton();
return instance;
}
}
这个程序在单线程下运行不会有问题,但是它不能运行在多线程的环境下,若想让运行在多线程的环境下,必须修改如下:
public class Singleton {
private static class Instance{
static final Singleton instance=new Singleton();
}
private Singleton(){
}
public static Singleton getInstance(){
return Instance.instance;
}
}
这样做之所以可以,是因为静态的内部类Instance只会被装载一次。运行在多线程下的单态设计模式也叫Double-Checked Looking模式。
<script type="text/javascript"></script>
分享到:
相关推荐
Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)
最简单的设计模式学习Singleton模式
C++设计模式课件12_Singleton_单件模式.pdf
设计模式-Singleton与Factory
设计模式C++学习之单例模式(Singleton)
李建忠面向对象设计模式视频精讲:Singleton 单件(创建型模式)
Singleton模式: 确保一个类只有唯一的一个实例。 Singleton主要用于对象的创建,这意味着,如果某个类采用了Singleton模式,则在这个类被创建后,它将有且仅有一个实例可供访问。很多时候我们都会需要Singleton...
设计模式 t04Singleton
设计模式总结-模板设计模式,单例模式(singleTon)
设计模式之Singleton(单态
设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享...
C#面向对象设计模式纵横谈 第二课 Singleton 单件(创建型模式)
设计模式精解-GoF 23 种设计模式解析附 C++实现源码 目 录 引 言 0.1 设计模式解析(总序) 0.2 设计模式解析后记 0.3 与作者联系 1 创建型模式 1.1 Factory模式 1.2 AbstactFactory模式 1.3 Singleton...
Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现
详解单例模式及C++源代码,singleton模式在软件开发中使用广泛。
设计模式之Singleton(单态)
单例设计模式Singleton1
Singleton模式,顾名思义,Singleton就是确保一个类只有唯一的一个实例。Singleton主要用于对象的创建,这意味着,如果某个类采用了Singleton模式,则在这个类被创建后,它将有且仅有一个实例可供访问。 详细见博客 ...
描述设计模式之Singleton 模式的应、及举例说明了在JAVA中单利模式的具体应用。
主要介绍了Java设计模式之单态模式(Singleton模式)介绍,本文讲解了如何使用单例模式、使用单例模式注意事项等内容,需要的朋友可以参考下