package com.iluwatar.strategy;

/**
 * 
 * Strategy ({@link DragonSlayingStrategy}) encapsulates an algorithm. The containing
 * object ({@link DragonSlayer}) can alter its behavior by changing its strategy.
 * 
 */
public class App {

	/**
	 * Program entry point
	 * @param args command line args
	 */
	public static void main(String[] args) {
		System.out.println("Green dragon spotted ahead!");
		DragonSlayer dragonSlayer = new DragonSlayer(new MeleeStrategy());
		dragonSlayer.goToBattle();
		System.out.println("Red dragon emerges.");
		dragonSlayer.changeStrategy(new ProjectileStrategy());
		dragonSlayer.goToBattle();
		System.out.println("Black dragon lands before you.");
		dragonSlayer.changeStrategy(new SpellStrategy());
		dragonSlayer.goToBattle();
	}
}

@@ -35,16 +35,20 @@
 *%0A * %0A *
+ The
  Strateg
@@ -49,16 +49,182 @@
 trategy 
+pattern (also known as the policy pattern) is a software design pattern that %0A * enables an algorithm's behavior to be selected at runtime.%0A * %3Cp%3E%0A * In this example 
 (%7B@link 

Improve Strategy Javadoc