Multiton
Multiton to wzorzec należący do grupy wzorców kreacyjnych. Wzorzec ten jest podobny do wzorca Singleton, który pozwala na na stworzenie tylko jednej instancji tej klasy. Wzorzec Multiton zawiera mapę obiektów, która zawiera tylko jedną instancję klasy Multiton dla danego klucza. Multiton zawiera tylko jedną instancję swojej klasy dla danego klucza dla całej aplikacji. Implementacja tego wzorca powinna być także bezpieczno-wątkowa. Multiton jest uważany za modyfikację wzorca Singleton.
Przykład implementacji wzorca Multiton
public class Multiton {
// statyczna mapa zawierająca pary w postaci klucz klasy String oraz wartość klasy Multiton
public static final Map multitonMap = new HashMap();
// prywatny konstruktor w celu zapobiegnięcia tworzenia instancji z poza ciała klasy.
private Multiton() {
}
// metoda pobierająca obiekty klasy Multiton z mapy multitonMap
public Multiton getInstance(String key) {
synchronized (multitonMap) {
Multiton multiton = null;
multiton = multitonMap.get(key);
if (multiton == null) {
multiton = new Multiton();
multitonMap.put(key, multiton);
}
return multiton;
}
}
}