黑马程序员技术交流社区

标题: 自己写的单例,大家看看有哪些可以优化的地方,谢谢 [打印本页]

作者: 大奔    时间: 2015-2-28 23:58
标题: 自己写的单例,大家看看有哪些可以优化的地方,谢谢
class single
{
        private single(){};//为了其他方法建立本类对象 ,可以将构造函数私有化 ,防止其他函数建立对象
        private single s=new single();//本类建立本类对象 并且私有 因为这是本类特有的数据 因此要私有
        public static single getSingle()//提供访问对象的方法
        {
                return s
        }

}
class single//饿汉式 延时加载 容易出现安全问题 用同步来处理
{
        private single(){};
        private single s=null;
        public static single getSingle()

        {
                if(s==null)
                        synchronized(single.class)
                {

                        if(s==null)
                                s=new single();
                }
                return s;
        }
}
作者: fantacyleo    时间: 2015-3-1 02:46
单例实现方式的水还是有那么点儿深的 初学没必要太纠缠 把老毕视频里提到的掌握好即可
作者: linuxpara910829    时间: 2015-3-1 03:21
你  编译应该过不了的   静态怎么可以调用非静态啊
作者: 奋斗小青年    时间: 2015-3-1 09:53
你的代码应该是这样吧,建议你下次粘贴代码用“<>”,就可以粘贴代码,方便点。
  1. class single
  2. {
  3.         private single(){};//为了其他方法建立本类对象 ,可以将构造函数私有化 ,防止其他函数建立对象
  4.         private static single s=new single();//本类建立本类对象 并且私有 因为这是本类特有的数据 因此要私有
  5.         public static single getSingle()//提供访问对象的方法
  6.         {
  7.                 return s;
  8.         }

  9. }

  10. class single2//饿汉式 延时加载 容易出现安全问题 用同步来处理
  11. {
  12.         private single2(){};
  13.         private static single2 s=null;
  14.         public static single2 getSingle()

  15.         {
  16.                 if(s==null)
  17.                         synchronized(single.class)
  18.                 {

  19.                         if(s==null)
  20.                                 s=new single2();
  21.                 }
  22.                 return s;
  23.         }
  24. }
复制代码





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