issue #333 javadocs changes

This commit is contained in:
Crossy147
2016-02-17 19:35:10 +01:00
parent 2fa705ab59
commit 6ab9b36d59
4 changed files with 24 additions and 5 deletions

View File

@ -1,7 +1,11 @@
package com.iluwatar.factorykit; package com.iluwatar.factorykit;
public class App { public class App {
/**
* Program entry point.
*
* @param args @param args command line args
*/
public static void main(String[] args) { public static void main(String[] args) {
WeaponFactory factory = WeaponFactory.factory(builder -> { WeaponFactory factory = WeaponFactory.factory(builder -> {
builder.add(WeaponType.SWORD, Sword::new); builder.add(WeaponType.SWORD, Sword::new);

View File

@ -1,7 +1,7 @@
package com.iluwatar.factorykit; package com.iluwatar.factorykit;
/** /**
* Interface representing weapon * Interface representing weapon.
*/ */
public interface Weapon { public interface Weapon {
} }

View File

@ -5,14 +5,26 @@ import java.util.function.Consumer;
import java.util.function.Supplier; import java.util.function.Supplier;
/** /**
* Functional interface that represents factory kit. Instance created locally gives an opportunity to strictly define * Functional interface, an example of the factory-kit design pattern.
* which objects types the instance of a factory would be able to create. Factory is just a placeholder for builders with * <br>Instance created locally gives an opportunity to strictly define
* create method to initialize new objects. * which objects types the instance of a factory will be able to create.
* <br>Factory is a placeholder for {@link Builder}s
* with {@link WeaponFactory#create(WeaponType)} method to initialize new objects.
*/ */
public interface WeaponFactory { public interface WeaponFactory {
/**
* Creates an instance of the given type.
* @param name representing enum of an object type to be created.
* @return new instance of a requested class implementing {@link Weapon} interface.
*/
Weapon create(WeaponType name); Weapon create(WeaponType name);
/**
* Creates factory - placeholder for specified {@link Builder}s.
* @param consumer for the new builder to the factory.
* @return factory with specified {@link Builder}s
*/
static WeaponFactory factory(Consumer<Builder> consumer) { static WeaponFactory factory(Consumer<Builder> consumer) {
HashMap<WeaponType, Supplier<Weapon>> map = new HashMap<>(); HashMap<WeaponType, Supplier<Weapon>> map = new HashMap<>();
consumer.accept(map::put); consumer.accept(map::put);

View File

@ -1,5 +1,8 @@
package com.iluwatar.factorykit; package com.iluwatar.factorykit;
/**
* Enumerates {@link Weapon} types
*/
public enum WeaponType { public enum WeaponType {
SWORD, AXE, BOW, SPEAR SWORD, AXE, BOW, SPEAR
} }