Also known as
Borg
Intent
Enforces a behaviour like sharing the same state amongst all instances.
Class diagram
Applicability
Use the Monostate pattern when
- The same state must be shared across all instances of a class.
- Typically this pattern might be used everywhere a Singleton might be used. Singleton usage however is not transparent, Monostate usage is.
- Monostate has one major advantage over singleton. The subclasses might decorate the shared state as they wish and hence can provide dynamically different behaviour than the base class.