熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java單例模式示例

2013-11-23 19:48:58  來源: Java高級技術 

  概念

  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);

  }

  }

  }

  //程序運行最後結果如圖

  

  結論由此我們可以得知

  單例模式為一個面向對象的應用程序提供了對象惟一的訪問點不管它實現何種功能整個應用程序都會同享一個實例對象


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27497.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.