diff --git a/multiton/src/main/java/com/iluwatar/App.java b/multiton/src/main/java/com/iluwatar/App.java index faf592178..db23372d7 100644 --- a/multiton/src/main/java/com/iluwatar/App.java +++ b/multiton/src/main/java/com/iluwatar/App.java @@ -3,5 +3,14 @@ package com.iluwatar; public class App { public static void main( String[] args ) { + System.out.println("KHAMUL=" + Nazgul.getInstance(NazgulName.KHAMUL)); + System.out.println("MURAZOR=" + Nazgul.getInstance(NazgulName.MURAZOR)); + System.out.println("DWAR=" + Nazgul.getInstance(NazgulName.DWAR)); + System.out.println("JI_INDUR=" + Nazgul.getInstance(NazgulName.JI_INDUR)); + System.out.println("AKHORAHIL=" + Nazgul.getInstance(NazgulName.AKHORAHIL)); + System.out.println("HOARMURATH=" + Nazgul.getInstance(NazgulName.HOARMURATH)); + System.out.println("ADUNAPHEL=" + Nazgul.getInstance(NazgulName.ADUNAPHEL)); + System.out.println("REN=" + Nazgul.getInstance(NazgulName.REN)); + System.out.println("UVATHA=" + Nazgul.getInstance(NazgulName.UVATHA)); } } diff --git a/multiton/src/main/java/com/iluwatar/Nazgul.java b/multiton/src/main/java/com/iluwatar/Nazgul.java new file mode 100644 index 000000000..592ce7bc4 --- /dev/null +++ b/multiton/src/main/java/com/iluwatar/Nazgul.java @@ -0,0 +1,36 @@ +package com.iluwatar; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class Nazgul { + + private static Map nazguls; + + private NazgulName name; + + static { + nazguls = new ConcurrentHashMap<>(); + nazguls.put(NazgulName.KHAMUL, new Nazgul(NazgulName.KHAMUL)); + nazguls.put(NazgulName.MURAZOR, new Nazgul(NazgulName.MURAZOR)); + nazguls.put(NazgulName.DWAR, new Nazgul(NazgulName.DWAR)); + nazguls.put(NazgulName.JI_INDUR, new Nazgul(NazgulName.JI_INDUR)); + nazguls.put(NazgulName.AKHORAHIL, new Nazgul(NazgulName.AKHORAHIL)); + nazguls.put(NazgulName.HOARMURATH, new Nazgul(NazgulName.HOARMURATH)); + nazguls.put(NazgulName.ADUNAPHEL, new Nazgul(NazgulName.ADUNAPHEL)); + nazguls.put(NazgulName.REN, new Nazgul(NazgulName.REN)); + nazguls.put(NazgulName.UVATHA, new Nazgul(NazgulName.UVATHA)); + } + + private Nazgul(NazgulName name) { + this.name = name; + } + + public static Nazgul getInstance(NazgulName name) { + return nazguls.get(name); + } + + public NazgulName getName() { + return name; + } +} diff --git a/multiton/src/main/java/com/iluwatar/NazgulName.java b/multiton/src/main/java/com/iluwatar/NazgulName.java new file mode 100644 index 000000000..c49d4450a --- /dev/null +++ b/multiton/src/main/java/com/iluwatar/NazgulName.java @@ -0,0 +1,7 @@ +package com.iluwatar; + +public enum NazgulName { + + KHAMUL, MURAZOR, DWAR, JI_INDUR, AKHORAHIL, HOARMURATH, ADUNAPHEL, REN, UVATHA; + +}