getinstance()究竟在单身人士中做了什么?

Ras*_*yak 2 c++ singleton design-patterns

我遇到过单身人士模式.我无法理解它们之间的区别

singletonobj.getinstance().dosomething() //1st one
Run Code Online (Sandbox Code Playgroud)

singletonobj.dosomething() //2nd one
Run Code Online (Sandbox Code Playgroud)

做了getinstance()什么,在第二种情况下没有做到这一点?

Luc*_*ore 9

从技术上讲,这singletonobj.getinstance()是多余的,因为这意味着你已经抓住了这个对象.

通话通常看起来像:

SingletonClass::getinstance().dosomething();
Run Code Online (Sandbox Code Playgroud)

要么

singletonobj.dosomething()
Run Code Online (Sandbox Code Playgroud)

如果你预先取了对象 - 也就是先前做过的

SingletonClass& singletonobj = SingletonClass::getinstance();
Run Code Online (Sandbox Code Playgroud)