单例示例如何工作

时间:2016-01-14 10:33:59

标签: c++ singleton

我在C ++语言中找到了这个单例:

@GET
@Path("method")
@ManagedAsync
public void method(@Context HttpServletRequest request, @Suspended AsyncResponse ar) {
  Object o = foo.bar(request);
  ar.resume(Response.ok(o).build()); //Is there any point to this?
}

但是,这怎么可能是单身人士?

只创建一个istance的控制权在哪里?

不要错过静态属性吗?

如果在main函数中我写了另一个get_instance()调用会发生什么?

2 个答案:

答案 0 :(得分:3)

使用get_instance内的函数范围静态完成单实例控件。这些对象在程序流首先通过它们并在程序出口处被破坏时构造一次。因此,第一次调用get_instance时,将构造并返回单例。每隔一次,同一个对象将被返回。

这通常称为Meyers singleton

答案 1 :(得分:1)

我想指出一个相当general description的模式,然后指向一个带有deeper dissertationC++ example。 在我看来,比试图解释(再一次)更有效。

P.S。 是的,你也需要一些静态定义。