Merge pull request #532 from leogtzr/master

Adding initialization-on-demand idiom and noninstantiable class instead of interface constant idiom
This commit is contained in:
Ilkka Seppälä
2017-01-23 08:21:07 +02:00
committed by GitHub
13 changed files with 32 additions and 21 deletions

View File

@ -23,6 +23,7 @@
package com.iluwatar.factorykit;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Supplier;
@ -48,7 +49,7 @@ public interface WeaponFactory {
* @return factory with specified {@link Builder}s
*/
static WeaponFactory factory(Consumer<Builder> consumer) {
HashMap<WeaponType, Supplier<Weapon>> map = new HashMap<>();
Map<WeaponType, Supplier<Weapon>> map = new HashMap<>();
consumer.accept(map::put);
return name -> map.get(name).get();
}