首页新闻招聘找找看知识库
  • 话题:

    单例模式(Singleton)是指确保一个类有且仅有一个实例,而且自行实例化并向整个系统提供这个实例。这个类我们也称它为单例类。单例模式的使用在现实世界里很多,比如我们常见的打印机打印的作业队列,一个没打印完,那么只有在队列等待;windows回收站,windows视窗里回收站有且只有一个实例。
    单例模式的目的就是有且只提供一个实例,所以它有一下几个特点:
    1、单例类只能有一个实例;
    2、单例类必须自己创建自己惟一的实例;
    3、单例类必须给所有其他对象提供这一实例。

    个人写的单例模式:http://alaric.iteye.com/blog/1909007

     

    请大家畅所欲言,谈谈怎么用,都用到哪里了?可以举个例子什么的,说下自己的经历,相互学习下,分享下。

  • alaricblog
    2013-08-23 12:39 alaricblog
    怎么没人呢?
    第1楼 回到顶楼
  • Weca
    2013-08-29 23:23 Weca
    将已登录的用户注册为单例。不太明白单例和静态类的区别,欢迎楼下补充。
    第2楼 回到顶楼
  • alaricblog
    2013-08-30 09:00 alaricblog
    @Weca
    静态类是不能new对象出来的,当然在java里面new了 也不会报错,可以用类名直接调用方法或属性;但是单例讲的是类只能有一个实例,也就是说不管有多少对象的引用,始终是指向一个实例的,非静态类是不能拿类来直接使用的,必须new出对象来使用。静态类和单例是两个方向的概念,好像有那么一点点相似,但是区别很大了。
    第3楼 回到顶楼
  • mushishi
    2013-08-31 08:23 mushishi
    不错不错
    第4楼 回到顶楼
  • Legolas
    2014-03-07 22:06 Legolas
    据说单例模式有懒汉模式,和饿汉模式等,有了解的能详细说一下吗?
    第5楼 回到顶楼
  • 依米艳
    2014-06-10 21:31 依米艳
    我想了解一下springmvc和struts2在单例上设置的区别,楼下补充啊!
    第6楼 回到顶楼
  • jssl915
    2014-06-12 14:33 jssl915
    @Legolas
    懒汉模式就是用的时候先判断是不是null,是就new一个,不是就返回已经创建的。
    饿汉模式就是先创建一个,调的时候直接用。
    第7楼 回到顶楼
  • 汤姆的猫
    2014-06-19 16:52 汤姆的猫
    单例模式也要考虑线程安全和序列话问题
    第8楼 回到顶楼
  • 嗨哟
    2014-06-24 17:35 嗨哟
    你的懒汉式单例模式写的有点问题,当有很多线程时,你这太耗时了
    if(obj == null){
    synchronized(类名.class){
    if(obj == null){
    obj = new Obj();
    }
    }
    }
    return obj
    第9楼 回到顶楼
登录后才能评论,请先登录注册