什么是单例

jackaudrey 2010-05-13 09:36:55
什么时候体现出单例,如何判断是不是一个单例
...全文
158 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
点冰霜 2010-05-13
  • 打赏
  • 举报
回复
路过,学到很多!
jackaudrey 2010-05-13
  • 打赏
  • 举报
回复
楼上的哥们,好幽默
So_So 2010-05-13
  • 打赏
  • 举报
回复
单例说白了 就是一个 你想再NEW 一个出来 都NEW 不来 就像 以前的计划生育 你只能生一个
angel 2010-05-13
  • 打赏
  • 举报
回复
就是只有一个实例
亲努力啊 2010-05-13
  • 打赏
  • 举报
回复
单例分为饿汉式和懒汉式
饿汉式不管有没有都先NEW一个
懒汉式要判断一下,有就不NEW了,没有才NEW
Mars_Ma_OK 2010-05-13
  • 打赏
  • 举报
回复
1.某各类只能有一个实例;
2.它必须自行创建这个事例;
3.它必须自行向整个系统提供这个实例;

通常单例的写法是 定义一个构造函数的时候设置为私有,private..在getInstance()中去判断这个对象是否为空,如果为空则返回new 对象.如果不为空则返回当前的对象.


private static ST instance = null;
private ST () {}
public static ST getInstance() {
if (instance == null) {
instance = new ST ();
}
return instance;
}
dr_lou 2010-05-13
  • 打赏
  • 举报
回复
有的东西你整个环境下只需要一份
判断不好弄

单例最关键的一个 就是private的构造函数
muler1988 2010-05-13
  • 打赏
  • 举报
回复
作为对象的创建模式[GOF95], 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
  单例模式的要点
  显然单例模式的要点有三个;一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例。在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙" 和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。
  一些资源管理器常常设计成单例模式。
  在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。
  需要管理的资源包括软件内部资源,譬如,大多数的软件都有一个(甚至多个)属性(properties)文件存放系统配置。这样的系统应当由一个对象来管理一个属性文件。
  需要管理的软件内部资源也包括譬如负责记录网站来访人数的部件,记录软件系统内部事件、出错信息的部件,或是对系统的表现进行检查的部件等。这些部件都必须集中管理,不可政出多头。
  这些资源管理器构件必须只有一个实例,这是其一;它们必须自行初始化,这是其二;允许整个系统访问自己这是其三。因此,它们都满足单例模式的条件,是单例模式的应用。
  在java中,可以使用一下这种方式使用单例模式创建类的实例:

public class MyBean {
  private static MyBean instance = null;
  private MyBean(){
  //do something
  }
  public static MyBean getInstance(){
  if(instance == null){
  instance = new MyBean();
  }
  return instance;
aSysBang 2010-05-13
  • 打赏
  • 举报
回复
自己网上查查,看看设计模式
这个模式很简单的
就是无论什么时候得到的实例都是同一个

67,547

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧