单利可以干嘛,有什么用什么好处!急须

解决方案 »

  1.   

    /在类的内部定义一个自身类型的成员 private static 
    private static ReadSourceUtil me_instance = null;
     
     //将构造方法私有化
     private ReadSourceUtil()
     {
      //通过Properties类的load加载
      try
      {
       //只读取一次
       //参数为资源配置文件的全名(名称.properties) 从src开始以/开头
       InputStream is = this.getClass().getResourceAsStream("/DBConfig.properties");   this.load(is);
      } 
      catch (Exception e)
      {
       System.out.println("读取资源配置文件发生异常:"+e.getMessage());
       e.printStackTrace();
      }
     }
           //这里为什么要用static?
     public static synchronized ReadSourceUtil newInstance()
     {
      //判断是否为空
      if(me_instance==null)
      {
       me_instance = new ReadSourceUtil();
      }
      //返回
      return me_instance;
     }
    作用:使你的整个应用中对于该类,只存在一个实例。
    在你给出的代码里,是读取数据库的属性文件,对于这种读取,一般读取1次即可。所以在这里用了单例,既该类的对象永远只有一个,并且是同一个。只有在创建这个对象时区读取资源文件。
    问为什么用static,你反过来想,你都单例了,就不可能从外部创建本来对象,本类对象在自己内部创建。外边没有对象,如何调用本类的方法。所以必须设成static,这样可以通过类名.方法()来调用本类的方法,该方法只是返回本来的单一实例给外部使用。
      

  2.   

    单例模式多是把构造方法设为私有,可防止再创建该对象的实例。
    具体的事例你看http://www.iteye.com/topic/214339,他上挺详细的
      

  3.   

    单例模式多是把构造方法设为私有,可防止再创建该对象的实例。
    具体的事例你看http://www.iteye.com/topic/214339,他上挺详细的