A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© why168 中级黑马   /  2014-2-14 16:13  /  1500 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 why168 于 2014-2-14 16:13 编辑

单例模式确保某个类只有一个实例,具有以下特点:
    1、单例类只能有一个实例。
  2、单例类必须自己自己创建自己的唯一实例。
  3、单例类必须给所有其他对象提供这一实例。


下面是我的总结:
       public class MySingleton
       {
            //该类只能有一个实例
            //私有无参构造方法
            private MySingleton() { }   

            //该类必须自行创建
            //有2种方式
            private static final  MySingleton ms = new MySingleton();//饿汉式
            //private static TestStream ts = null; //懒汉式

            //提供唯一实例对象
            public static MySingleton getTest()
            {
                 //懒汉式时进行判断
                //if (ms == null) {
                //    synchronized (MySingleton.class) {
                //        if(ms == null) {
                //            ms = new MySingleton();
                //        }
               //    }
               //}     
               return ms;
          }
      }

请问各位大神,单例模式在实际项目当中应用的场景是什么?也就是说项目中哪块用单例模式比较合适?



评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

5 个回复

倒序浏览
单例主要涉及到多线程的异步
现实例子最简单的有win系统任务管理器 我貌似没有见过一次开两个任务管理器的
还有回收站的应用 还有有些游戏或者软件 你发现他只能单开 多开的话除非挂载虚拟线程
等等这些都是例子

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
比如说在银行里,有三种客户,快速,普通,VIP客户,去银行有发号的机器,针对三种客户进行发号。但是不可能搞三个机器去分别管理三种客户的发号码的机器,一个就可以了,这里就可以把管理机器设计成单例就行了。只要是要确保实例对象唯一性的地方就可以用单例

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
再给你举个例子,好比一家公司,里面有多个部门,不可能给每个部门聘请总裁去管理,公司只要一个总裁,然后遥控各部门首脑就行了(开董事会或者会议)。这里就可以把总裁设成单例。一个公司就一个头
回复 使用道具 举报
来学习。。。。。。。。。。
回复 使用道具 举报
只要涉及到对象的唯一性,我们就可以用单例设计模式。比如银行调服系统的取号机器系统是管理整个银行的取号对象,可以用单例设计;交通灯管理系统是管理交通灯唯一的系统,可以设计成单例。这个需要你多写代码,从代码实战中感悟具体的应用。希望能对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马