单例模式

简介

单例模式可以用在建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制

表现形式

1 .饿汉式单例模式

public class Singleton {
    //类在加载时就生成一个静态实例且私有
    private static Singleton myInstance = new Singleton();
    //构造方法私有,保证外界无法直接实例化
    private Singleton(){
    }
    //获得实例对象的方法设为公有
    public static Singleton getInstance(){
        return myInstance;
    }
}

2 .懒汉式单例模式

public class Singleton {
    //类在加载时只声明不赋值
    private static Singleton myInstance = null;
    //构造方法私有,保证外界无法直接实例化
    private Singleton(){
    }
    //对静态方法 getInstance()进行同步,以确保多线程环境下只创建一个实例,例如,如果            getInstance()方法未被同步,并且线程A和线程B同时调用此方法,则执行if (myInstance == null)语句时都   为真,那么线程A和线程B都会创建一个对象,在内存中就会出现两个对象,这样就违反了单例模式;但使用          synchronized关键字进行同步后,则不会出现此种情况。
    synchronized public static Singleton getInstance(){
        if(myInstance == null){
            myInstance = new Singleton();
        }
        return myInstance;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 单例模式(Singleton Pattern)是最简单的一种设计模式。下面让我们开始学习单例模式。 一、基本介绍 ...
    冰鉴IT阅读 4,760评论 1 19
  • 概念 确保某一个类只有一个实例,而且自行实例化,并向整个系统提供一个访问它的全局访问点,这个类称为单例类。 特性 ...
    野狗子嗷嗷嗷阅读 3,535评论 0 2
  • 版权声明:本文为博主原创文章,未经博主允许不得转载 PS:转载请注明出处作者: TigerChain地址: htt...
    TigerChain阅读 5,092评论 0 3
  • 1.单例模式概述 (1)引言 单例模式是应用最广的模式之一,也是23种设计模式中最基本的一个。本文旨在总结通过Ja...
    曹丰斌阅读 8,059评论 6 47
  • (大家好这里是萌新,第一次更有何不妥还请大家多多包涵) 清光和安定是一对相爱相杀,啊不,相撕的好基友。为什么这么说...
    卡可可乐铃阅读 5,616评论 0 0