单例模式是一中常见的设计模式,使用它要满足以下条件:
第一 : 系统中只要求有一个实例。
第二 : 这个实例必须有单例类自己提供。
在JAVA中的单例设计模式有两种形式:可分为饿汉式单例和懒汉式单例。
1 饿汉式单例
java 代码
- public class Singlon{
-
- private static Singlon instance = new Singlon();
-
- private Singlon(){
- }
-
- public static Singlon getInstance(){
-
- return instance ;
- }
- }
2 懒汉式单例
java 代码
- public class Singlon{
-
- private static Singlon instance = null;
-
- private Singlon(){
- }
-
- synchronized public static Singlon getInstance(){
- if(instance==null){
- instance = new Singlon();
- }
- return instance ;
- }
- }
无论是哪种单例都不能继承,因为它们的构造器是私有的。而对于饿汉式单例来说是在类刚被加载后就初始化的,而懒汉式是在静态方法里进行初始化。从资源利用的角度来说,懒汉式可能好点,但是就时间方面考虑饿汉式好点。GOF将单例设计模式设计为了懒汉式,那是因为C++中类的静态初始化和类加载的顺序不固定。不过要利用好单例也不是件容易的事情,因为在设计到多线程共享的情况下,只有一个实例可能造成性能和安全方面的种种问题。因此要用单例也要从综合方面考虑。
分享到:
相关推荐
java设计模式之单例模式
JAVA设计模式之单例模式。 一篇文章带你快速了解!
java设计模式之单例模式,通过例子说明8种单例设计模式。
研磨设计模式之单例模式,牛人精华之作!!!!
java设计模式之单例模式详解,包含例子,详解。
JAVA设计模式之单例模式(完整版)1[定义].pdf
php设计模式之单例模式_.docx
细心整合和单例模式和工厂模式的几种模型,懒汉式,饿汉式,如何并发操作模式,等都有详细讲解
php设计模式之单例模式代码_.docx
设计模式之单例模式,单列模式的几种实现形式,以及其优缺点,还有就是示例,对初步了解单列模式的有所帮助
php设计模式之单例模式实例分析_.docx
PHP设计模式之单例模式__1.docx
单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 比如在某个服务器程序中,该服务器的配置信息存放...
JAVA设计模式之单例模式(完整版)[归类].pdf
目录 单例模式的概念 单例模式的要点 单例模式类图 单例模式归类 单例模式的应用场景 单例模式解决的问题 单例模式的实现方式 单例模式实现方式对比 单例模式的概念 单例模式,顾名思义就是只有一个实例,并且由它...