单态模式(SingletonPattern)

原创 2016年08月29日 22:10:47

单态模式:

确保一个类只有一个实例,并提供一个全局访问点


毫无疑问,单态模式是java编程过程中最常见也是最常用的模式;其核心就是一个类整个生命周期中就只有一个实例,无论是单线程还是多线程都是只有一个;
SingletonPattern


在实现方式上有两种:饥汉和饱汉(其实就是初始化的先后顺序):
饥汉式:

public class SingletonOther {
    private static SingletonOther instance;

    private SingletonOther() {
    }

    public SingletonOther getInstance(){
        if(instance == null){
            instance = new SingletonOther();
        }
        return instance;
    }
}

饱汉式:

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

    private Singleton() {
    }

    public Singleton getInstance()
    {
        return instance;
    }

}

然而,在多线程情况下饥汉实例化过程中,由于CPU时钟轮训工作时那就有可能出现多个实例;在这个时候我们可以通过加锁进保证整个创建得过程的唯一性:

public class SingletonPro {
    private volatile static SingletonPro instance;

    private SingletonPro(){
    }

    public SingletonPro getInstance()
    {
        if(instance == null){
            synchronized (Singleton.class) {
                if(instance == null){
                    instance = new SingletonPro();
                }
            }
        }
        return instance;
    }
}
版权声明:本文为博主原创文章,转载请声明来源地址,并通知博主本人,谢谢。

JAVA设计模式---单态模式理解

前言何为单态模式? 在一个系统中,JVM中,只能存在有一个对象的实例,所有程序的处理都只能调用这一个对象完成相关逻辑操作,单态模式有点在于减少了new关键字的调用,实例的初始化,节省了系统内存开销。...
  • zhang6622056
  • zhang6622056
  • 2016年09月21日 18:13
  • 946

在C#中事项单态模式

单态模式是软件工程中众所周知的设计模式之一。本质上讲,单态模式就是一个类只允许有一个它自己的实例被创建,通常情况下它提供了对这个实例的单一访问。大多数情况下,单态一般在创建实例时不允许指定任何参数,当...
  • zlz_212
  • zlz_212
  • 2006年09月27日 18:29
  • 1735

Listener模拟单态登录

本文简单列举几个java开发的Listener,以及模拟单态登录的简单demo ServletContextListener ServletContextAttributeListener HttpS...
  • snakeMoving
  • snakeMoving
  • 2017年02月23日 13:27
  • 370

单态登陆

    下面是学习时,发现书上有段不错的代码,是说只允许一台机器的一个帐号登陆的,另外一个上线的话,会被注销掉。下面是代码;  String action = request.getParamet...
  • jackyrongvip
  • jackyrongvip
  • 2010年03月04日 22:03
  • 964

Singleton单态模式

 Singleton模式主要作用保证在java应用程序中,一个类只有一个实例存在。 在项目中很多地方都会用到它,比如说数据库的链接。 使用单态模式好处还有节省了内存,因为限制了实例个数,有利于java...
  • xiaoranchenxi
  • xiaoranchenxi
  • 2008年10月23日 09:13
  • 305

设计模式 - 单态模式

整个应用程序中某个类只有一个对象,不会出现多个该类的对象.同时最多只有一个实例。 何时用:在开发过程中,读取配置文件时使用单态。统计在线人数时使用过单态。 Code: 资源文件:ka...
  • kalision
  • kalision
  • 2012年04月19日 08:54
  • 409

单态模式

一个简单的Java单态模式例子:package org.xiaolai.singleton;class Singleton { private static final Singleton sl=ne...
  • piaofeer
  • piaofeer
  • 2007年11月11日 15:28
  • 167

Singleton模式(单态模式)

Singleton模式(单态模式)单态设计模式:采取一定的方法保证在整个软件系统中,对某个类只能产生一个对象实例,并且该类只提供一个取得其对象的实例方法.在Java中实现单态模式只需要执行以下三步...
  • guoweilxx
  • guoweilxx
  • 2009年12月03日 16:16
  • 353

Java 单态模式

java 单态模式1、 构造方法私有。2 在类里面创建私有,静态(static),final的该对象的实例。3 创建公有,静态方法以获得实例。4 应用场合:避免频繁读取属性文件,构造一个单例模式进行一...
  • KindAzrael
  • KindAzrael
  • 2009年09月12日 16:29
  • 483

单态模式(singleton)

* 感谢 jzkangta 老师的精彩讲解单态模式主要作用是保证一个JAVA应用程序中,一个类Class只有一个实例存在好处在于可以节省内存空间,因为它限制了实例的个数。项目中的应用:比如数据库的连接...
  • luhao
  • luhao
  • 2008年01月25日 14:23
  • 574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单态模式(SingletonPattern)
举报原因:
原因补充:

(最多只允许输入30个字)