From Design Pattern by GoF
Participants
•
Singleton
defines an
Instance
operation that lets clients access its unique instanceuniqueinstance
.Instance
is a class operation (that is, a class method in Smalltalk and a static member function in C++).may be responsible for creating its own unique instance
uniqueinstance
.Collaborations
• Clients access a
Singleton
instanceuniqueinstance
solely throughSingleton
'sInstance
operation.
In Class Singleton
, uniqueinstance
is the unique instance, and Instance()
is its get method.
What are the purposes of the other members:
- method
SingletonOperation()
, - method
GetSingletonData()
, and - field
singletonData
?
Thanks.
The additional methods and field in the diagram show that singletons are allowed to include state and behavior; i.e. singletons are not just constants. Furthermore, singletons are intended for subclassing, a feature which is often overlooked, despite the GoF mentioning it several times.
So the additional methods are also shown to indicate that singletons may be polymorphic.
The book goes on to describe multiple ways in which this configuration may be achieved.
Nothing in particular, or rather say it has nothing to do with
Singleton
, you can just remove it or rename it or whatever you like. It's just a normal method and has nothing to do to your class being a Singleton.