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:
		@@ -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();
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user