黑马程序员技术交流社区

标题: 关于 单例设计 模式在实际项目的应用 [打印本页]

作者: why168    时间: 2014-2-14 16:13
标题: 关于 单例设计 模式在实际项目的应用
本帖最后由 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;
          }
      }

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




作者: kira    时间: 2014-2-14 16:25
单例主要涉及到多线程的异步
现实例子最简单的有win系统任务管理器 我貌似没有见过一次开两个任务管理器的
还有回收站的应用 还有有些游戏或者软件 你发现他只能单开 多开的话除非挂载虚拟线程
等等这些都是例子
作者: 奋斗的小胖子    时间: 2014-2-14 16:25
比如说在银行里,有三种客户,快速,普通,VIP客户,去银行有发号的机器,针对三种客户进行发号。但是不可能搞三个机器去分别管理三种客户的发号码的机器,一个就可以了,这里就可以把管理机器设计成单例就行了。只要是要确保实例对象唯一性的地方就可以用单例
作者: 奋斗的小胖子    时间: 2014-2-14 16:27
再给你举个例子,好比一家公司,里面有多个部门,不可能给每个部门聘请总裁去管理,公司只要一个总裁,然后遥控各部门首脑就行了(开董事会或者会议)。这里就可以把总裁设成单例。一个公司就一个头
作者: 疲劳的小马    时间: 2014-2-14 17:38
来学习。。。。。。。。。。
作者: 倉促、尋找你    时间: 2014-2-14 19:15
只要涉及到对象的唯一性,我们就可以用单例设计模式。比如银行调服系统的取号机器系统是管理整个银行的取号对象,可以用单例设计;交通灯管理系统是管理交通灯唯一的系统,可以设计成单例。这个需要你多写代码,从代码实战中感悟具体的应用。希望能对你有帮助。




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