【创建模式】--Singleton

设计模式之Singleton(单态)

单态定义:

  Singleton 模式主要作用是保证在Java应用程序中,一个类Class 只有一个实例存在。

  在很多操作中,比如建立目录  数据库链接都需要这样的单线程操作。

模式如下:

 

第一种模式

package com.zuoyan.Singleton;

public class Singleton {

    private Singleton(){}
    //在自己内部定义一个自己的实例
    //注意这个是private 只供内部调用
    private static Singleton instance =new Singleton();
    
    //这里提供了一个供外部访问本Class的静态方法,可以直接访问
    public static Singleton getInstance()
    {
        return instance;
    }
    
}

 

第二种模式

  

package com.zuoyan.Singleton;

public class Singleton {

    private static Singleton instance = null;
    public static synchronized Singleton getInstance() {
    //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
    //使用时生成实例,提高了效率!
    if (instance==null)
    instance=new Singleton();
    return instance;
    }
    
    
}

 

使用 Singleton.getInstance()可以访问单态类。
上面第二中形式是 lazy initialization,也就是说第一次调用时初始 Singleton,
以后就不用再生成了。
注意到 lazy initialization 形式中的 synchronized,这个 synchronized 很重
要,如果没有 synchronized,那么使用 getInstance()是有可能得到多个 Singleton

 

posted @ 2018-03-08 01:09  梅花GG  阅读(145)  评论(0编辑  收藏  举报