单例模式理解起来比较简单,顾名思义就是只能有一个实例。
DF的定义是这样的: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
实现起来是这样的:
package com.wjy.singleton;
public class Singleton {
private static Singleton instance;
private Singleton() //私有的构造函数保证了外界不会使用new来创建它的实例。
{
}
public static Singleton getInstance() //这个方法是获得本类实例的唯一的全局访问点,设为static使之可以直接用类名调用。
{
if(instance==null)
{
instance=new Singleton();
}
return instance;
}
protected void showMessage()
{
System.out.println("hello,here.I am singleton.");
}
}
测试之:
package com.wjy.singleton;
import java.io.Console;
public class start {
public static void main(String[] args)
{
Singleton s1=Singleton.getInstance();
s1.showMessage();
Singleton s2=Singleton.getInstance();
/*
* == 是用来比较对象的地址的,若为真,证明两个对象是同一块内存区域。
*/
if(s1==s2)
{
System.out.println("这两个对象是同一个实例。");
}
}
}