码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA设计模式之单例模式

时间:2016-11-29 07:20:25      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:线程   com   定义   效果   方式   单例类   bsp   单例   pattern   

单例模式(Singleton Pattern)是一种很常见的设计模式。核心就是保证系统中单例类只有一个实例。在系统中某些涉及配置数据,以及生成唯一序列ID的情况用的很多。

参考《设计模式之禅》中的定义:

Ensure a class has only one instance,and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)

简单的类图如下:

技术分享

通过收集整理发现单例模式一共有8种写法。

1、饿汉 (静态常量)

public class Singleton {
    private static final Singleton instance = new Singleton();

    private Singleton() {

    }

    public static Singleton getInstance() {
        return instance;
    }
}

这种方式非常简单易懂。在类初始化的时候就回直接初始化出Singleton的实例。然后通过getInstance()方式来获取实例。不存在线程同步的问题。但是也存在一个缺点就是没有达到Lazy Loading的效果。

2、饿汉 (静态代码块)

public class Singleton {
    private static Singleton instance;

    static {
        instance = new Singleton();
    }

    private Singleton() {
    }

    public static Singleton getInstance() {
        return instance;
    }
}

 

JAVA设计模式之单例模式

标签:线程   com   定义   效果   方式   单例类   bsp   单例   pattern   

原文地址:http://www.cnblogs.com/mingshashan/p/6111905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!