iamzken

独立思考,怀疑一切!

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


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

[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实例的生命周期、实例状态等。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭