新闻正文

Java中设计模式(2) Singleton模式

来源:JAVA天堂  JAVA学习者  2007-6-4 02:17:58 网友评论 0 条 字体:[ ] ~我要投稿!

  
   Singleton模式:
   Singleton模式主要作用是保证在Java应用程序中,一个Class只有一个实例存在。
   一般有三种方法:
   1 定义一个类,它的构造函数为private的,所有方法为static的。如java.lang.Math
   其他类对它的引用全部是通过类名直接引用。例如:
   public final class Math {
  
   /**
   * Don"t let anyone instantiate this class.
   */
   private Math() {}
  
   public static int round(float a) {
   return (int)floor(a + 0.5f);
   }
   ...
   }
  
   2 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时
   实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。例如:
   public class Runtime {
  
   private static Runtime currentRuntime = new Runtime();


  
   public static Runtime getRuntime() {
   return currentRuntime;
   }
   ...
   }
   3 定义一个类,它的构造函数为private的,它有一个static的private的boolean变量,用于表示
   是否有实例存在。例如:
  
   class PrintSpooler
   {
   //this is a prototype for a printer-spooler class
   //such that only one instance can ever exist
   static boolean
   instance_flag=false; //true if 1 instance
   public PrintSpooler() throws SingletonException
   {
   if (instance_flag)
   throw new SingletonException("Only one spooler allowed");
   else
   instance_flag = true; //set flag for 1 instance
   System.out.println("spooler opened");
   }
   //-------------------------------------------
   public void finalize()
   {
   instance_flag = false; //clear if destroyed

   }
   }


收藏到ViVi   收藏此页到365Key
上一篇:JavaOne大会发布《J2EE核心模式》第二版
下一篇:设计模式(1)Factory模式和Abstract Factory模式
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享