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