设计模式-单例模式(singleton)

转载 2013年12月04日 14:25:10

有些时候,允许自由创建某个类的实例没有意义,还可能造成系统性能下降。如果一个类始终只能创建一个实例,则这个类被称为单例类,这种模式就被称为单例模式。
单例模式要点:一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例

[java] 
public class Singleton { 
     
    public static void main(String[] args) 
    { 
        //创建Singleton对象不能通过构造器,只能通过getInstance方法 
        Singleton s1 = Singleton.getInstance(); 
        Singleton s2 = Singleton.getInstance(); 
        //将输出true 
        System.out.println(s1 == s2); 
    } 
     
    //使用一个变量来缓存曾经创建的实例 
    private static Singleton instance; 
    //将构造器使用private修饰,隐藏该构造器 
    private Singleton(){ 
        System.out.println("Singleton被构造!"); 
    } 
     
    //提供一个静态方法,用于返回Singleton实例 
    //该方法可以加入自定义的控制,保证只产生一个Singleton对象 
    public static Singleton getInstance() 
    { 
        //如果instance为null,表明还不曾创建Singleton对象 
        //如果instance不为null,则表明已经创建了Singleton对象,将不会执行该方法 
        if (instance == null) 
        { 
            //创建一个Singleton对象,并将其缓存起来 
            instance = new Singleton(); 
        } 
        return instance; 
    } 

单例模式主要有如下两个优势:

1)     减少创建Java实例所带来的系统开销

2)     便于系统跟踪单个Java实例的生命周期、实例状态等。

相关文章推荐

设计模式--单例模式【Singleton Pattern】

这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的...

【设计模式】Singleton Pattern 单例模式

1.单例模式  确保一个类只有一个实例,并提供一个全局访问点。 应用场景:对于我们只需要一个对象的场景,如线程池(threadpool)、缓存(cache),如果制造出多个实例,就会导致许多问题。 ...

设计模式之单例模式Singleton

设计模式之单例模式Singleton 参考文献 参考1:http://www.iteye.com/topic/60179 参考2:研磨设计模式 参考3:http://cantellow.i...

设计模式-单例模式(singleton pattern)

单例模式定义:确保一个类只有一个实例,并提供全局访问点.    应用场景:书中介绍有  线程池  缓存  对话框  注册表 日志 打印机驱动程序的对象等   个人在android开发中 使用到的场景是...

设计模式总结之Singleton Pattern(单例模式)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

设计模式(创建型)之单例模式(Singleton Pattern)

单例模式可能是23种设计模式中最简单的。应用也非常广泛,譬如Android中的数据库访问等操作都可以运用单例模式。核心概念: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称...

Java设计模式--单例模式(Singleton)

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 类型:创建类模式 类图: 类图知识点: 1.类图分为三部分,依次是类名、属性、方法 2.以>结尾的为注释信息 3.修饰符+代表...

设计模式C++学习笔记之六(Singleton单例模式)

单例模式看起来也蛮简单的,就是在系统中只允许产生这个类的一个实例,既然这么简单,就直接贴代码了。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。 解释 ma...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式-单例模式(singleton)
举报原因:
原因补充:

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