Multiton pattern: Difference between revisions

Content deleted Content added
Implementations: Fixed some typos and modernised the C# code that had clearly originally come from Java.
Tags: Mobile edit Mobile web edit
Line 7:
 
==Description==
While it may appear that the multiton is a [[hash table]] with synchronized access there are two important distinctions. First, the multiton does not allow clients to add mappings. Secondly, the multiton never returns a [[Null (computer programming)|null]] or empty reference; instead, it creates and stores a multiton instance on the first request with the associated key. Subsequent requests with the same key return the original instance. A hash table is merely an implementation detail and not the only possible approach. The pattern simplifies retrieval of shared objects in an application.
 
Since the object pool is created only once, being a member associated with the class (instead of the instance), the multiton retains its flat behavior rather than evolving into a [[Tree (data structure)|tree structure]].
 
The multiton is unique in that it provides centralized access to a single directory (i.e. all keys are in the same namespace, ''per se'') of multitons, where each multiton instance in the pool may exist having its own [[State (computer science)|state]]. In this manner, the pattern advocates indexed storage of essential objects for the system (such as would be provided by an [[LDAP]] system, for example). However, a multiton is limited to wide use by a single system rather than a myriad of distributed systems.
 
==Drawbacks==