概念
Java中 单例模式是一种常见的设计模式
单例模式分三种懒汉式单例饿汉式单例登记式单例三种
单例模式有一下特点
单例类只能有一个实例
单例类必须自己自己创建自己的唯一实例
单例类必须给所有其他对象提供这一实例
今天我就以懒汉式单例模式写一例子懒汉式单例模式也是我们在做Java程序中常用的单例模式之一
public class TestStream
{
private String name; //姓名
public String getName()
{
return name;
}
public void setName(String name)
{
thisname=name;
}
//该类只能有一个实例
private TestStream(){} //私有无参构造方法
//该类必须自行创建
//种方式
//private static final TestStream ts=new TestStream();
private static TestStream ts=null;
//而且这个类必须自动向整个系统提供这个实例
public synchronized static TestStream getTest()
{
if(ts==null)
{
ts=new TestStream();
}
return ts;
}
public void getInfo()
{
Systemoutprintln(Output Message+name);
}
}
//程序Main方法中
public class TestMain
{
public static void main(String[] args)
{
TestStream s=TestStreamgetTest();
ssetName(赵志哲);
ssetName(代重庆);
ssetName(郭伟新);
Systemoutprintln(sgetName());
Systemoutprintln(sgetName());
Systemoutprintln(sgetName());
TestStream s=TestStreamgetTest();
ssetName(赵志哲);
ssetName(代重庆);
ssetName(郭伟新);
Systemoutprintln(sgetName());
Systemoutprintln(sgetName());
Systemoutprintln(sgetName());
sgetInfo();
sgetInfo();
if(s==s)
{
Systemoutprintln(创建的是同一个实例);
}
else if(s!=s)
{
Systemoutprintln(创建的不是同一个实例);
}
else
{
Systemoutprintln(Application Error);
}
}
}
//程序运行最后结果如图
结论由此我们可以得知
单例模式为一个面向对象的应用程序提供了对象惟一的访问点不管它实现何种功能整个应用程序都会同享一个实例对象