对设计模式主要参考了板桥里人 http://www.jdon.com 2002/05/07的blog,在这里我仅整理并发表到自己的blog中以便做个记录,方便随时查阅。
定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
第二种形式:
测试代码:
打印的结果是:
定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
下面是代码:
/**
* 第一种形式
*
*/
public class SingletonA {
private static int i = 0;
private SingletonA(){
System.out.println("create a instanceA");
}
private static SingletonA instance = new SingletonA();
public static SingletonA getInstance()
{
System.out.println("i==" + i++);
return instance;
}
}
第二种形式:
/**
* 第二种形式
*
*/
public class SingletonB {
private static int i = 0;
private SingletonB(){
System.out.println("create a instanceB");
}
private static SingletonB instance = null;
public static synchronized SingletonB getInstance()
{
if(instance == null)
{
instance = new SingletonB();
}
System.out.println("i==" + i++);
return instance;
}
}
测试代码:
public class TestPattens {
/**
* test
* @param args
*/
public static void main(String args[])
{
//test SingletonA
//SingletonA siton1 = SingletonA.getInstance();
//SingletonA siton2 = SingletonA.getInstance();
SingletonB sitonB1 = SingletonB.getInstance();
SingletonB sitonB2 = SingletonB.getInstance();
}
}
打印的结果是:
create a instanceB
i==0
i==1
说明实例只创建了一次。