黑马程序员技术交流社区

标题: 【笔记】单例 [打印本页]

作者: backin    时间: 2015-8-18 20:17
标题: 【笔记】单例
简单的说单例就是当前运行态类的实例只有一个,比如说登录QQ,那么在这个设备中的所有相关的用户类的实例就只是自己一个。简单的代码实现

  1. public class ClassA
  2. {
  3.     private static ClassA classA=null;
  4.   //将类A的构造方法私有化,那么在运行的时候ClassA就不能实例化了那怎么办呢?
  5.     private ClassA()
  6.     {
  7.        //dosomething
  8.     }
  9.     /***
  10.      * 如果classA的实例为空,就new一个重新创建,反之就直接赋值
  11.      * 由于其他类要访问,所以必须是静态的方法
  12.      * @return classA 的实例
  13.      */
  14.     public static ClassA getA()
  15.     {
  16.         if(classA!=null)
  17.         {
  18.             new ClassA();
  19.         }
  20.         return classA;
  21.     }
  22. }
  23. 其他类调用的时候直接用类名所有就避免了类的重新初始化
  24. public class ClassB
  25. {
  26.     public static void main(String [] args)
  27.     {
  28.         // 如果ClassA在其他地方已经实例化过的话,a接受的ClassA的实例一定不是新的的实例。
  29.         ClassA a = ClassA.getA();
  30.         a.toString();
  31.     }
  32. }
  33. 方法就说很实用。等待进一步学习
复制代码

Q1:优势在哪里?
Q2:什么时候用?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2