当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Java单例模式示例
发布时间:2010/6/29 11:42:29 来源:城市学习网 编辑:ziteng
  概念:
  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);
  }
  } [NextPage] //程序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");

  }

  }

  }

  结论:由此我们可以得知,

  单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved