歡迎您光臨本站 註冊首頁

Java單例模式示例

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  概念:

  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次圍觀

http://coctec.com/docs/java/show-post-60239.html