Problem scenario:
Suppose we have three types of characters in a GameApp:
- Knight: Attacks with a sword; uses 3 strategies to defend (shield, dodge, magic barrier)
- Wizard: Casts spells; uses magic barrier to defend
- Archer: Shoots arrows; uses dodge to to defend
Implement two types of Strategy: A. DefenseStrategy
- Shield
- Dodge
- CreateMagic
B. AttackStrategy
- CastSpell
- ShootArrow
- SwingSword
