设计模式之单例模式

这个设计模式我相信几乎是使用最多的一种了
它是确保一个类中只有一个实例,一般用来读取配置,产生其它依赖对象
可以避免对资源的多重占用,但单例模式对测试是不利的,扩展也困难

package cn.byhook.design;

/**
 * 作者: Andy
 * 时间: 2016-07-27
 * 单例模式
 */
public class Singleton {

    /**
     * 饿汉式单例
     */
    private static Singleton sHungryInstance = new Singleton();

    /**
     * 懒汉模式单例
     */
    private static Singleton sLazyInstance;

    private Singleton(){

    }

    /**
     * 饿汉模式单例
     * @return
     */
    public static Singleton getHungryInstance(){
        return sHungryInstance;
    }

    /**
     * 懒汉模式单例
     * 线程安全
     * @return
     */
    public static Singleton getLazyInstance(){
        if(sLazyInstance == null) {
            synchronized (Singleton.class){
                if(sLazyInstance == null) {
                    sLazyInstance = new Singleton();
                }
            }
        }
        return sLazyInstance;
    }


}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 单例模式是应用最广的模式之一,在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要...
    刘涤生阅读 4,624评论 0 5
  • 单例模式(Singleton Pattern)是最简单的一种设计模式。下面让我们开始学习单例模式。 一、基本介绍 ...
    冰鉴IT阅读 4,760评论 1 19
  • 前言 本文主要参考 那些年,我们一起写过的“单例模式”。 何为单例模式? 顾名思义,单例模式就是保证一个类仅有一个...
    tandeneck阅读 7,220评论 1 8
  • 使用场景 要求生成唯一序列号的环境 在整个项目中需要一个共享访问点或共享数据例如一个Web页面上的计数器,可以不用...
    niaoge2016阅读 3,089评论 0 0
  • 如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。希望用最简单的大白话来帮助那些像我一样的人。如果...
    Wing_Li阅读 9,163评论 8 26