黑马程序员技术交流社区

标题: 关于单例设计的问题 [打印本页]

作者: Alexander    时间: 2014-3-14 09:58
标题: 关于单例设计的问题
前段时间接触到单例设计的问题,一般单例设计都是要将构造函数设为私有化,使其无法被new出来,然后再创建返回值为本类对象的函数(static),再将早已经创建好的本类实例化对象(static)作为该函数的返回值,这样就实现了单例,意思为,只能有一个本类对象存在,下面的代码可以说明这点

public class Moon {

       //私有的构造函数
      private Moon() {}

      //本类实例化对象,静态, 私有
      private static Moon moon = new Moon();

      //获取本类对象的方法,静态,公开
      public static Moon getInstance() {
              return moon;
      }
}

我现在想问,这样设计有什么好处吗,在哪种情况下能用到呢?


作者: 呦呦歌    时间: 2014-3-14 10:06
以后再EE里面有一个工厂模式  需要使用单例模式
http://devbean.blog.51cto.com/448512/203501/  给你博客看看  单例模式
作者: SyouRai_Tsk    时间: 2014-3-14 10:06
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
作者: Alexander    时间: 2014-3-14 10:11
SyouRai_Tsk 发表于 2014-3-14 10:06
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保 ...

哦,这下知道了,谢啦
作者: papercup    时间: 2014-3-14 10:19
单利设计模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。
优点:1.单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。2.因为类控制了实例化过程,所以类可以灵活更改实例化过程。
缺点:使用单例对象时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。
作者: daoyua    时间: 2014-3-14 16:18
比如工具类,一般就是单例,只创建一个对象,又比如一对多关系的两种类,那个一就可以单例,又比如线程的共享数据也可以单例




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