What are the purposes of other members of a Singleton class besides the instance and its get method?

65 views Asked by At

From Design Pattern by GoF

enter image description here

Participants

Singleton

  • defines an Instance operation that lets clients access its unique instance uniqueinstance. 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 instance uniqueinstance solely through Singleton's Instance 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.

2

There are 2 answers

2
JohnStands On BEST ANSWER

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.

0
jaco0646 On

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.

Use the Singleton pattern when... the sole instance should be extensible by subclassing, and clients should be able to use an extended instance without modifying their code.

So the additional methods are also shown to indicate that singletons may be polymorphic.

The Singleton class may be subclassed, and it's easy to configure an application with an instance of this extended class. You can configure the application with an instance of the class you need at run-time.

The book goes on to describe multiple ways in which this configuration may be achieved.