服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java中设计模式(2)singleton模式


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

扫描关注微信公众号