WEB开发网
开发学院WEB开发Jsp Java中设计模式(2)Singleton模式 阅读

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

 2008-01-05 18:56:17 来源:WEB开发网   
核心提示: Singleton模式: Singleton模式主要作用是保证在java应用程序中,一个Class只有一个实例存在,Java中设计模式(2)Singleton模式, 一般有三种方法: 1 定义一个类,它的构造函数为PRivate的,例如: pu

   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
   }
   }

Tags:Java 设计模式 Singleton

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接