1.Singleton 的核心就是-》一个类只有唯一的一个实例
2.为什么要用Singleton?
现在想想以前为什么会出现程序异常、Memory溢出、订单撞单、明明打印的是这种结果为什么却变成了不是预期的结果...等等现象,现在终于有点思路了。
总结:ThreadPool,Cache,Log,Print...像这类的类对象只能有一个实例,如果出现多个实例就会出现上述所遇到的问题。
3.单例模式的DEMO
a.最简单的写法,有一个private的构造函数,有一个生成单一实例的接口
public class Singleton{
//利用静态变量来记录唯一实例
private static Singleton uniqueSingleton;
/**
*私有构造函数
*/
private Singleton(){
}
public static Singleton getInstance(){
if(null==uniqueSingleton){
uniqueSingleton=new Singleton();
}
return uniqueSingleton;
}
}
Result:上面这种单例的实现,在多线程下运行就有可能出现两个或多个实例。
b.杜绝多线程访问,保持线程同步的单例模式
可能会想到Synchronized 方法同步,确实可以做到同步,但是这样会使系统的性能大大降低,所以下面有另外一种方法可以很好的解决此问题“双重检查枷锁”
public class Singleton{
//利用静态变量来记录唯一实例 枷锁
private volatile static Singleton uniqueSingleton;
/**
*私有构造函数
*/
private Singleton(){
}
public static Singleton getInstance(){
if(null==uniqueSingleton){//第一次检查
synchronized(Singleton.class){
if(null==uniqueSingleton){//第二次检查
uniqueSingleton=new Singleton();
}
}
}
return uniqueSingleton;
}
}
分享到:
相关推荐
在本文中,我们将深入探讨设计模式的核心概念,并结合"Head First DesignPattern_src"中的源码,详细解析一些关键的设计模式。 1. 单例模式(Singleton): 单例模式确保一个类只有一个实例,并提供全局访问点。在...
《Head First Design Patterns》是一本深受开发者喜爱的设计模式书籍,由Eric Freeman和Elisabeth Robson合著。这本书以其独特的教学方式,通过丰富的图像、幽默的插图以及易于理解的实例,深入浅出地介绍了设计模式...
《Head First设计模式》是一本深受程序员喜爱的经典书籍,它以非扫描的原生版形式呈现,确保了阅读的清晰度和舒适性。这本书主要针对Java编程语言,深入浅出地讲解了设计模式这一核心软件工程概念。设计模式是经验...
《Head First Design Patterns》是一本深入浅出介绍设计模式的图书,由Eric Freeman、Elisabeth Freeman、Bert Bates和Kathy Sierra联合编写。本书结合认知科学原理和神经生物学研究,采用引导式教学方法,通过故事...
《Head First Design Patterns》是设计模式领域中一本非常知名的书籍,尤其适合初学者入门。这本书以其独特的视觉风格和易于理解的讲解方式,帮助读者深入理解设计模式的核心概念和实际应用。Part2部分主要涵盖了...
《HeadFirst设计模式》是一本深受读者喜爱的设计模式入门书籍,以其独特的图文并茂、通俗易懂的讲解方式,让初学者也能轻松理解和掌握设计模式的精髓。这本书深入浅出地介绍了软件工程中的核心概念——设计模式,...
根据提供的文件信息,“Head First Design Patterns中文版”这一标题与描述明确指出了这是一本关于设计模式的书籍中文版本。由于具体内容部分并没有提供书中的实际信息,因此将基于标题、描述以及一般理解来生成相关...
《Head First设计模式》是一本深受设计师们喜爱的经典著作,由Eric Freeman和Elisabeth Robson合著。这本书以其独特的视觉呈现方式和易懂的语言,深入浅出地讲解了设计模式这一复杂的概念,使得初学者也能快速掌握。...
《Head First Design Patterns》是设计模式领域内一本非常知名的书籍,以其独特的教学方式深受程序员喜爱。这本书通过生动、直观的方式讲解了23种经典的设计模式,帮助开发者提升软件设计能力和可维护性。随书附带的...
《Head-First 设计模式》是一本非常著名的设计模式书籍,它以易理解、生动有趣的方式介绍了23种经典的设计模式。源码是基于Java语言编写的,这为读者提供了实际操作和学习设计模式的实践机会。以下是这些设计模式的...
《Head First Design Patterns》是软件开发领域中一本非常经典的书籍,它以易理解、生动有趣的方式介绍了设计模式这一核心概念。这本书的源代码包含了书中所有示例的实现,旨在帮助读者更好地理解和应用这些设计模式...
### Head First Design Patterns 英文版 #### 书籍概述 《Head First Design Patterns》是一本在软件开发领域广受好评的设计模式入门书籍。本书由Kathy Sierra与Bert Bates共同编写,采用了一种独特而富有创意的...
设计模式(Design Pattern)是软件工程中的一种经验总结,它是在特定上下文中为解决常见问题而提出的一套可复用的解决方案。设计模式并不直接实现为代码,而是提供了一种在面向对象设计中如何处理常见问题的指南。...
根据提供的文件信息,“Head First Object-Oriented Design and Analysis”这本书主要聚焦于面向对象的设计与分析,这是一本深入浅出、易于理解的学习材料,旨在帮助读者掌握面向对象(Object-Oriented,简称OO)的...
《深入浅出设计模式》是设计模式领域里一本广受欢迎的书籍,以其独特的教学方式,使得复杂的概念变得易于理解...通过研究"Head First Design Pattern"的源码,你可以更好地理解和应用这些模式,从而提升你的编程技能。
《Head First Design Patterns》是设计模式领域中一本非常知名的经典著作,它以通俗易懂的方式讲解了面向对象设计中的各种模式。这本书对于学习Java或者其他面向对象编程语言的开发者来说,是一份极其宝贵的资源。...
《Head First设计模式》是一本深入浅出讲解软件设计模式的书籍,作者是Eric Freeman、Elisabeth Freeman、Bert Bates和Kathy Sierra。本书共包含14章内容,每章介绍了一些设计模式,覆盖了四人组(Gang of Four, GoF...
《Head First Design Patterns》是一本专注于设计模式的图书,由Kathy Sierra和Bert Bates共同著作,这本书是Head First系列书籍中的一本,旨在向读者深入浅出地介绍设计模式这一重要的软件开发概念。设计模式是软件...