Skip to content

This is an example of Strategy Design Pattern in JAVA

Notifications You must be signed in to change notification settings

ClarkBelen/strategyPattern

Repository files navigation

Game App using Strategy Pattern

Problem scenario:

Suppose we have three types of characters in a GameApp:

  1. Knight: Attacks with a sword; uses 3 strategies to defend (shield, dodge, magic barrier)
  2. Wizard: Casts spells; uses magic barrier to defend
  3. Archer: Shoots arrows; uses dodge to to defend

Implement two types of Strategy: A. DefenseStrategy 1. Shield 2. Dodge 3. CreateMagic

B. AttackStrategy 1. CastSpell 2. ShootArrow 3. SwingSword

Refactor the existing codes and provide the UML Diagram:

public class Character { private String type;

public Character(String type) {
    this.type = type;
}

public void attack() {
    if (type.equals("Knight")) {
        System.out.println("Knight attacks with a sword!");
    } else if (type.equals("Wizard")) {
        System.out.println("Wizard casts a spell!");
    } else if (type.equals("Archer")) {
        System.out.println("Archer shoots an arrow!");
    }
}

public void defend() {
    if (type.equals("Knight")) {
        System.out.println("Using a shield to defend!");
System.out.println("Dodgin to avoid attack!");
        System.out.println("Creating a magic barrier for defense!"");		

    } else if (type.equals("Wizard")) {
        System.out.println("Creating a magic barrier for defense!"");
    } else if (type.equals("Archer")) {
        System.out.println("Using a shield to defend!"");
    }
}

}

UML Diagram

Strategy Pattern Activity

About

This is an example of Strategy Design Pattern in JAVA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages