added flyweight sample

This commit is contained in:
Ilkka Seppala
2014-08-16 19:40:39 +03:00
parent 8725969908
commit 3fcca577f8
12 changed files with 191 additions and 1 deletions

View File

@ -0,0 +1,39 @@
package com.iluwatar;
import java.util.EnumMap;
public class PotionFactory {
private EnumMap<PotionType, Potion> potions;
public PotionFactory() {
potions = new EnumMap<>(PotionType.class);
}
Potion createPotion(PotionType type) {
Potion potion = potions.get(type);
if (potion == null) {
switch (type) {
case HEALING:
potion = new HealingPotion();
break;
case HOLY_WATER:
potion = new HolyWaterPotion();
break;
case INVISIBILITY:
potion = new InvisibilityPotion();
break;
case POISON:
potion = new PoisonPotion();
break;
case STRENGTH:
potion = new StrengthPotion();
break;
default:
break;
}
}
return potion;
}
}