概念:
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");
}
}
}
//程序運行結果如圖:
結論:由此我們可以得知,
單例模式為一個面向對象的應用程序提供了對象惟一的訪問點,不管它實現何種功能,整個應用程序都會同享一個實例對象.
[火星人 ] Java單例模式示例已經有532次圍觀