定义:Ensure a class has only one instance, and provide a global point of access
to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实
例。)
通用代码:(是线程安全的)
public class Singleton {
private static final Singleton singleton = new Singleton();
//限制产生多个对象
private Singleton(){
}
//通过该方法获得实例对象
public static Singleton getSingleton(){
return singleton;
}
//类中其他方法,尽量是 static
public static void doSomething(){
}
}
使用场景:
● 要求生成唯一序列号的环境;
● 在整个项目中需要一个共享访问点或共享数据,例如一个 Web 页面上的计数
器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确
保是线程安全的;
● 创建一个对象需要消耗的资源过多,如要访问 IO 和数据库等资源;
● 需要定义大量的静态常量和静态方法(如工具类)的环境,可以采用单例模式
(当然,也可以直接声明为 static 的方式)。
线程不安全实例:
public class Singleton {
private static Singleton singleton = null;
//限制产生多个对象
private Singleton(){
}
//通过该方法获得实例对象
public static Singleton getSingleton(){
if(singleton == null){
singleton = new Singleton();}
return singleton;
}
}解决办法:
在 getSingleton 方法前加 synchronized 关键字,也可以在 getSingleton 方法内增
加 synchronized 来实现。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Singleton Pattern(单例模式)
/*单例设计模式(Singleton Pattern)* 1,表现形式:* var obj = { XXX:XXX, ... };* 就是一个破
javascript 命名空间 赋值 单例模式 -
创建型 - 单例模式(Singleton pattern)
单例模式(Singleton Pattern):确保一个类有且只有一个实例,并提供一个全局访问点。
单例模式 java 开发语言 实例化 线程安全 -
【Singleton Pattern】设计模式之单例模式
【Singleton Pattern】设计模式之单例模式
Singleton Pattern -
设计模式之单例模式(Singleton pattern)
1.解析单例模式是设计模式中最简单的形式之一。一个类有且仅有一个实例,并且自行实例化向整个
设计模式 单例模式 java 实例化 System -
Net设计模式实例之单例模式( Singleton Pattern)(1)
本文对单例模式(Singleton Pattern)的概念及其设计结构图简单地进行了描述,同样也以一个Mail机制的LOG实例进行了说明。单例模式是比较常用,比较简单的创建型设计模式。
C#设计模式 Net设计模式 Designpattern 单例模式 单例模式实例 SingletonPattern