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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Alexander 中级黑马   /  2014-3-14 09:58  /  1291 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

public class Moon {

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

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

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

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

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

5 个回复

倒序浏览
以后再EE里面有一个工厂模式  需要使用单例模式
http://devbean.blog.51cto.com/448512/203501/  给你博客看看  单例模式
回复 使用道具 举报
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
SyouRai_Tsk 发表于 2014-3-14 10:06
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保 ...

哦,这下知道了,谢啦
回复 使用道具 举报
单利设计模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。
优点:1.单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。2.因为类控制了实例化过程,所以类可以灵活更改实例化过程。
缺点:使用单例对象时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。

评分

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

查看全部评分

回复 使用道具 举报
比如工具类,一般就是单例,只创建一个对象,又比如一对多关系的两种类,那个一就可以单例,又比如线程的共享数据也可以单例
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马