29 lines
842 B
Markdown
29 lines
842 B
Markdown
|
---
|
||
|
layout: pattern
|
||
|
title: MonoState
|
||
|
folder: monostate
|
||
|
permalink: /patterns/monostate/
|
||
|
categories: Creational
|
||
|
tags: Java
|
||
|
---
|
||
|
|
||
|
**Intent:** Enforces a behaviour like sharing the same state amongst all instances.
|
||
|
|
||
|

|
||
|
|
||
|
**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.
|
||
|
|
||
|
**Typical Use Case:**
|
||
|
|
||
|
* the logging class
|
||
|
* managing a connection to a database
|
||
|
* file manager
|
||
|
|
||
|
**Real world examples:**
|
||
|
|
||
|
Yet to see this.
|