您的位置:建站学院首页 >> 文章 >> JSP技术 >> 设计模式
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

  }

 }  
Google
 
Web www.cqxw.net